python 常见字符串与函数的用法

目录

strip去除空格

大小写

位置和比较

分隔和连接

常用判断

函数

函数定义与默认参数

可变参数

关键字参数

命名关键字参数

复杂情况

函数可以作为参数

递归

 


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

 

函数

函数定义与默认参数

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

 

 

 

 

 

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python中提供了很多字符串内置函数,这里列举几个比较常用的: 1. `len(str)`:返回字符串的长度。 ```python str = "hello, world!" print(len(str)) # 输出:13 ``` 2. `str.upper()`和`str.lower()`:将字符串分别转化为大写和小写形式。 ```python str = "Hello, WoRlD!" print(str.upper()) # 输出:HELLO, WORLD! print(str.lower()) # 输出:hello, world! ``` 3. `str.capitalize()`和`str.title()`:将字符串的首字母或每个单词的首字母转化为大写。 ```python str = "hello, world!" print(str.capitalize()) # 输出:Hello, world! print(str.title()) # 输出:Hello, World! ``` 4. `str.find(sub, start, end)`和`str.index(sub, start, end)`:返回子字符串在原字符串中的位置,若没有则返回-1或抛出异常。 ```python str = "hello, world!" print(str.find('o')) # 输出:4 print(str.index('o')) # 输出:4 print(str.find('z')) # 输出:-1 # print(str.index('z')) # 抛出异常:ValueError: substring not found ``` 5. `str.count(sub, start, end)`:返回子字符串在原字符串中出现的次数。 ```python str = "hello, world!" print(str.count('o')) # 输出:2 ``` 6. `str.replace(old, new, count)`:将字符串中的所有旧子字符串替换为新子字符串,count为替换次数,可省略,表示替换所有。 ```python str = "hello, world!" print(str.replace('l', 'L')) # 输出:heLLo, worLd! ``` 除此之外,还有很多其他的字符串内置函数,比如`str.startswith(prefix, start, end)`、`str.endswith(suffix, start, end)`、`str.strip(chars)`、`str.join(iterable)`等等。这些函数都有其特定的功能和用法,可以根据实际情况进行选择和使用。 引用:Python字符串内置函数功能与用法总结。主要介绍了Python字符串内置函数功能与用法,结合实例形式总结分析了Python常见字符串操作函数的功能、分类、使用方法及相关操作注意事项,需要的朋友可以参考下[^1]。 引用:python string内置函数表格。string.replace(str1, str2, num=string.count(str1)) [^2]。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值