python指定函数类型的声明方式
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 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))
print(linear_search(list1, 40))
print(linear_search2(list1, 65))
print(linear_search2(list1, 40))
函数的参数
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))
if __name__ == '__main__':
print(cal(mode="+", a=10, b=20))
print(cal(10, mode='-', b=20))
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))
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"))
print(mystr.find("Java", 8, 10))
print(mystr.find("Java", 6))
print(mystr.find("python"))
print(mystr.find("J"))
print(mystr.find("A"))
print(mystr.index("python"))
- rfind(): 和find()功能相同,但查找?向为右侧开始。
- rindex():和index()功能相同,但查找?向为右侧开始。
- count():返回某个?串在字符串中出现的次数
字符串序列.count(?串, 开始位置下标, 结束位置下标)
mystr = "python Java C++ golang Java"
print(len(mystr))
print(mystr.count("java"))
print(mystr.count("Java"))
print(mystr.count("Java", 10, 27))
修改
所谓修改字符串,指的就是通过函数的形式修改字符串中的数据。(但是原来字符串不变)
字符串序列.replace(旧?串, 新?串, 替换次数)
注意:数据按照是否能直接修改分为可变类型和不可变类型两种。字符串类型的数据修改的时候 不能改变原有字符串,属于不能直接修改数据的类型即是不可变类型。
price = "$9.9$"
print(price.replace("$", ""))
price = price.replace("$", "")
print(price)
price = float(price)
print(price*10)
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。
|