Python字符串处理与函数定义核心用法指南
本文深入解析Python中字符串的常见操作方法,包括去除空格、大小写转换、位置查找及分割连接等。同时详细讲解函数定义的多种参数形式,涵盖默认参数、可变位置参数、关键字参数及命名关键字参数。通过代码示例展示函数作为参数的应用及递归逻辑,帮助开发者掌握Python编程核心技巧。
strip方法用于去除字符串两端的空白字符。
s = ' abcd efg ' print(s.strip()) #去除所有空格 print(s.lstrip()) #去除左边空格 print(s.rstrip()) #去除右边空格 print(s) abcd efg abcd efg abcd efg abcd efg
处理字符串的大小写转换。
s = 'abc defg' print(s.upper()) print(s.upper().lower()) print(s.capitalize()) #首字母大写 ABC DEFG abc defg Abc 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)
1
ValueError: substring not found
True
False
True
s = ''
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,其他情况返回False
print('\tabcd1234'.isalnum())
print('abcd'.isalpha()) #string中至少有一个字符,而且全为字母,返回True,其他情况返回False
print('12345'.isdigit()) #输入字符串是否只由数字组成
print(' '.isspace())
print('acb125'.islower())
print('A1B2C'.isupper())
print('Hello world!'.istitle()) #检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写
True
True
True
False
True
True
True
True
True
False
Python函数的基本定义与默认参数设置。
函数定义时如何指定默认参数值。
def func(x, y = 500): print(x, y) func(150) func(100, 200) func(y = 300, x = 100) 150 500 100 200 100 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)
300
def 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 -1
print(cmp(100,200))
print(cmp(100,200,my_cp))
-1
1
递归函数的概念与实现。
将大问题分解为结构相同的小问题,利用小问题的解推导出大问题的解。
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))
1
3
6
55
5050
# 递归的经典例子!
# 斐波那契数列 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))
1
1
2
3
5
8
本节内容总结。
以上介绍了Python中常见的字符串处理方法与函数用法,希望能为读者提供实际帮助。如有疑问欢迎留言,小编会及时回复。感谢大家的支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









