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。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值