IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Pyhton精讲day07--函数参数和字符串方法 -> 正文阅读

[Python知识库]Pyhton精讲day07--函数参数和字符串方法

python指定函数类型的声明方式

# python指定函数类型的声明方式
# def 函数名(形参1: 类型, 形参2: 类型)->返回值类型:
def linear_search(ls: list, target: int)->int:
    for i in range(len(ls)):
        if ls[i] == target:
            return i
    return -1
def linear_search2(ls: list, target: int)->int:
    #
    # for x in enumerate(ls):# 此时x 返回的类型是元组(位置索引, 值)
    #     print(x)
    # for x in enumerate(ls):# 此时x 返回的类型是元组(位置索引, 值)
    #     i, v = x
    # index, val 这样的操作叫序列解包
    for index, val in enumerate(ls):
        if val == target:
            return index
    return -1

if __name__ == '__main__':
    import random
    random.seed(666)
    list1 = [random.randint(1, 100) for _ in range(10)]
    print(list1)
    print(linear_search(list1, 65)) # 4
    print(linear_search(list1, 40)) # -1 找不到
    print(linear_search2(list1, 65)) # -1 找不到
    print(linear_search2(list1, 40)) # -1 找不到

函数的参数

# 函数的参数
# 1 必须参数: 函数调用时和声明时, 参数的顺序和个数[类型]保持一致
def cal(a: int, mode: str, b: int)->int:
    if mode == '+':
        return a + b
    elif mode == '-':
        return a - b
if __name__ == '__main__':
    # print(cal(10, 20)) 错
    print(cal(10, "+", 20))
    # print(cal("+", 10, 20))错
    # print(cal( 10, 20,  10))错
# 2 关键字参数: 函数声明时和调用时的顺序可以不一致
if __name__ == '__main__':
    print(cal(mode="+", a=10, b=20))
    print(cal(10, mode='-', b=20))
# 3 默认参数: 可以给函数设置默认值(此时可传可不传), 需要在后面
def cal2(a: int ,b: int,  mode = '+')->int:
    if mode == '+':
        return a + b
    elif mode == '-':
        return a - b
if __name__ == '__main__':
    print(cal2(10, 40, '-'))
    print(cal2(10, 40))

# 4 可变参数(了解) : 函数调用时传入的参数比定义时候的传入的参数多
def func(a, b , *args, **kwargs):
    print("a = ", a)
    print("b = ", b)
    print("*args = ", args)
    print("**kwargs = ", kwargs) # 字典
if __name__ == '__main__':
    func(10, 100, 222, 3333, c=999, d=888)

字符串

字符串的常?操作?法有查找、修改和判断三?类。
所谓字符串查找?法即是查找?串在字符串中的位置或出现的次数。

  • find():检测某个?串是否包含在这个字符串中,如果在返回这个?串开始的位置下标,否则则返
    回-1。
字符串序列.find(?串, 开始位置下标, 结束位置下标)

index():检测某个?串是否包含在这个字符串中,如果在返回这个?串开始的位置下标,否则则
报异常。

mystr = "python Java C++ golang"
print(mystr.find("Java")) # 7
print(mystr.find("Java", 8, 10)) # -1
print(mystr.find("Java", 6)) # 7
print(mystr.find("python")) # 0
print(mystr.find("J"))# 7
print(mystr.find("A"))# -1
print(mystr.index("python"))# 0
# print(mystr.index("A"))# 错误
  • rfind(): 和find()功能相同,但查找?向为右侧开始。
  • rindex():和index()功能相同,但查找?向为右侧开始。
  • count():返回某个?串在字符串中出现的次数
字符串序列.count(?串, 开始位置下标, 结束位置下标)
mystr = "python Java C++ golang Java"
print(len(mystr))
print(mystr.count("java")) # 0
print(mystr.count("Java")) # 2
print(mystr.count("Java", 10, 27)) # 1

修改

所谓修改字符串,指的就是通过函数的形式修改字符串中的数据。(但是原来字符串不变)

  • replace():替换
字符串序列.replace(旧?串, 新?串, 替换次数)

注意:数据按照是否能直接修改分为可变类型和不可变类型两种。字符串类型的数据修改的时候
不能改变原有字符串,属于不能直接修改数据的类型即是不可变类型。

price = "$9.9$"
# print(price.replace("$", "666"))
print(price.replace("$", ""))
# price = price.replace("$", "", 1)
price = price.replace("$", "")
print(price)
price = float(price)
print(price*10)
  • split():按照指定字符分割字符串。
1 字符串序列.split(分割字符, num)

注意:num表示的是分割字符出现的次数,即将来返回数据个数为num+1个。

mystr = "hello python, I like it"
print(mystr.split()) # 默认按照空格进行分割
print(mystr.split(","))
print(mystr.split(" ", 2))
print("/usr/local/bin/python3.7 /Users/ericli/PycharmProjects/mmx/day07/demo38.py".split("/"))
  • join():??个字符或?串合并字符串,即是将多个字符串合并为?个新的字符串。(列表变字符串)
path = "/Users/ericli/PycharmProjects/mmx/day07/demo38.py"
ls = path.split("/")
print(ls)
print("".join(ls))
print(" ".join(ls))
print("/".join(ls))
print("C:" + "\\".join(ls))
  • capitalize():将字符串第?个字符转换成?写。
  • title():将字符串每个单词?字?转换成?写。
  • lower():将字符串中?写转?写。
  • upper():将字符串中?写转?写。
  • strip():删除字符串两侧空?字符。
  • lstrip():删除字符串左侧空?字符。
  • rstrip():删除字符串右侧空?字符。
  • ljust():返回?个原字符串左对?,并使?指定字符(默认空格)填充?对应?度 的新字符串。
  • rjust():返回?个原字符串右对?,并使?指定字符(默认空格)填充?对应?度 的新字符串,语法和ljust()相同。
  • center():返回?个原字符串居中对?,并使?指定字符(默认空格)填充?对应?度 的新字符串,语法和ljust()相同。
    -在这里插入图片描述

判断

所谓判断即是判断真假,返回的结果是布尔型数据类型:True 或 False。

  • startswith():检查字符串是否是以指定?串开头,是则返回 True,否则返回 False。如果设置开
    始和结束位置下标,则在指定范围内检查。
  • endswith()::检查字符串是否是以指定?串结尾,是则返回 True,否则返回 False。如果设置开
    始和结束位置下标,则在指定范围内检查。
  • isalpha():如果字符串?少有?个字符并且所有字符都是字?则返回 True, 否则返回 False。
  • isdigit():如果字符串只包含数字则返回 True 否则返回 False。
  • isalnum():如果字符串?少有?个字符并且所有字符都是字?或数字则返 回 True,否则返回False。
  • isspace():如果字符串中只包含空?,则返回 True,否则返回 False。
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:00:16  更:2022-04-01 00:01:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:30:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码