strip去除空格
s = ' abcd efg 'print(s.strip()) #去除所有空格print(s.lstrip()) #去除左边空格print(s.rstrip()) #去除右边空格print(s)abcd efgabcd efg abcd efg abcd efg
大小写
s = 'abc defg'print(s.upper())print(s.upper().lower())print(s.capitalize()) #首字母大写ABC DEFGabc defgAbc defg
位置和比较
s_1 = 'abcdefg's_2 = 'abdefgh'print(s_1.index('bcd'))try: print(s_1.index('bce'))except ValueError: print('ValueError: substring not found')print(s_1 == s_1) # cmp函数被Python3移除了print(s_1 > s_2)print(s_2 > s_1)1ValueError: substring not foundTrueFalseTrues = ''if not s: print('true')else: print('flase') #空字符串和flase是等价的true
分隔和连接
s = 'abc,def,ghi'print(s.split(','))s = '123/n456/n789'numbers = s.split('/n') #按行分隔numbers = s.splitlines() #按行分隔print(numbers)print('-'.join(numbers)) ['abc', 'def', 'ghi']['123', '456', '789']123-456-789
常用判断
s = 'abcdefg'print(s.startswith('abc')) #判断是否以某个字符串为开头print(s.endswith('efg')) #判断是否以某个字符串为结尾print('abcd1234'.isalnum()) #string中至少有一个字符,而且全是字母或者数字或者是字母和数字混合返回True,其他情况返回Falseprint('/tabcd1234'.isalnum()) print('abcd'.isalpha()) #string中至少有一个字符,而且全为字母,返回True,其他情况返回Falseprint('12345'.isdigit()) #输入字符串是否只由数字组成print(' '.isspace())print('acb125'.islower())print('A1B2C'.isupper())print('Hello world!'.istitle()) #检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写TrueTrueTrueFalseTrueTrueTrueTrueTrueFalse
函数
函数定义与默认参数
def func(x, y = 500): print(x, y)func(150)func(100, 200)func(y = 300, x = 100)150 500100 200100 300
可变参数
def func(name, *numbers): #加一个星号,就表示告诉python,在处理后面所有参数的时候,把这些参数放到一个数组里面 print(name) print(numbers) print(type(numbers))func('Tom', 1, 2, 3, 4)Tom(1, 2, 3, 4)<class 'tuple'> #tuple - 元组,等价于只读数组,就是后面所有的参数都会作为一个数组
关键字参数
def func(name, **kvs): # **意思是把它装到 key/value 字典里,转化成字典了 print(name) print(kvs) print(type(kvs))func('Jack', china = 'Beijing', uk = 'London')Jack{'china': 'Beijing', 'uk': 'London'}<class 'dict'>
命名关键字参数
def func(a,b,c,*, china, uk): # *用于和普通参数做分割,*args一样效果 print(china, uk)func(1,2,3,china = 'Beijing', uk = 'London') # *后面传递的参数必须传入参数名Beijing London
复杂情况
def func(a, b, c = 0, *args, **kvs): print(a, b, c, args, kvs)func(1, 2)func(1, 2, 3)func(1, 2, 3, 'a', 'b')func(1, 2, 3, 'a', 'b', china = 'Beijing', uk = 'London')func(1, 2, 3, *('a', 'b'), **{'china':'Beijing', 'uk':'London'}) #提高代码的可读性1 2 0 () {}1 2 3 () {}1 2 3 ('a', 'b') {}1 2 3 ('a', 'b') {'china': 'Beijing', 'uk': 'London'}1 2 3 ('a', 'b') {'china': 'Beijing', 'uk': 'London'}def my_print(*args): print(*args) #传变量时,在变量前加上*号,代表把这个数组作为可变参数处理 my_print('x = ',100, 'y = ',200)x = 100 y = 200
函数可以作为参数
def sum(x,y,p = None): s = x + y if p: p(s) return sum(100,200)sum(100,200,print)300def cmp(x,y,cp = None): if not cp: if x > y: return 1 elif x < y: return -1 else: return 0 else: return cp(x,y)def my_cp(x ,y): if x < y: return 1 elif x == y: return 0 else: return -1print(cmp(100,200))print(cmp(100,200,my_cp))-11
递归
把一个大问题分解成同样结构的小问题, 然后利用小问题的解得出大问题的解
def my_sum(i): if i < 0: raise ValueError elif i <=1: return i else: return i + my_sum(i - 1) # my_sum(i - 1)是它更小范围内的解,利用这个子问题的解得出当前的解print(my_sum(1))print(my_sum(2))print(my_sum(3))print(my_sum(10))print(my_sum(100))136555050# 递归的经典例子!# 斐波那契数列 f(n) = f(n - 1) + f(n -2)def fib(n): if n < 1: raise ValueError elif (n == 1) or (n == 2): return 1 else: return fib(n - 1) + fib(n - 2)print(fib(1))print(fib(2))print(fib(3))print(fib(4))print(fib(5))print(fib(6))112358
总结
以上所述是小编给大家介绍的python 常见字符串与函数的用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对VEVB武林网网站的支持!
注:相关教程知识阅读请移步到python教程频道。