python字符串相关函数及方法

python字符串相关函数及方法

补充:

r语法:如果在一个字符串的最前面加r/R,可以让字符中所有的转义字符功能消失,每个字符都变成普通字符。

字符串相关函数

len(字符串) - 计算字符串中字符个数。

str(数据) - 将指定数据转换成字符串,任何类型数据都可以转换成字符串,转换时直接在数据的打印值外加引号。

eval(字符串) - 计算字符串表达式的结果。

字符串相关方法

1.join

字符串.join(序列) - 将序列中的元素用指定字符串拼接,拼接处是一个字符串,序列中元素必须是字符串。

list1 = ['1', '2', '3']
result = '+'.join(list1)
print(result) 
# 1+2+3

2.split

字符串1.split(字符串2) - 将字符串1中所有的字符串2作为切割点对字符串1进行切割;

字符串1.split(字符串2, N) - 将字符串1中前N个字符串2作为切割点对字符串1进行切割;

字符串1.rsplit(字符串2, N) - 将字符串1倒数N个字符串2作为切割点对字符串1进行切割。

注意:切割点在切割后会消失;切割点在开头、结尾或者切割点连续切割会切割出空串。

str1 = '*qw**12*'
print(str1.split('*'))
# ['', 'qw', '', '12', '']
print(str1.split('*', 3))
# ['', 'qw', '', '12*']
print(str1.rsplit('*', 2))
# ['*qw*', '12', '']

3.replace - 替换
字符串1.replace(字符串2,字符串3) - 将字符串1中所有的字符串2都替换成字符串3;

字符串1.replace(字符串2,字符串3,N)- 将字符串1中前N个字符串2都替换成字符串3。

str1 = 'how are you? i am fine, thank you! and you?'
r = str1.replace('you', 'me')
print(r)
# how are me? i am fine, thank me! and me?
r = str1.replace('you', 'me', 2)
print(r)
# how are me? i am fine, thank me! and you?

4.替换字符
str.maketrans(字符串1,字符串2) - 创建字符串1中所有字符和字符串2中所有字符一一对应对映表;

字符串.translate(字符对映表) - 按照字符对映表的关系将字符中的字符进行替换。

str1 = '星期7,星期1'
table = str.maketrans('1234567', '一二三四五六天')
result = str1.translate(table)
print(result)
# 星期天,星期一

5.删除字符串两端的空白
字符串.strip() - 删除字符串两边的空白;

字符串.rstrip() - 删除字符串右边的空白;

字符串.lstrip() - 删除字符串左边的空白。

str1 = '\t \n 123 \n\n'
print(str1)
print('=========')
print(str1.strip())
print('=========')
print(str1.rstrip())
print('=========')
print(str1.lstrip())
print('=========')
str2 = 'asd'
print(str2.strip('/'))
'''

 123 


=========
123
=========
	 
 123
=========
123 


=========
asd
'''

6.count - 统计个数

字符串1.count(字符串2) - 统计字符串1中字符串2出现的次数。

str1 = '123adwd23asfe?a'
print(str1.count('a'))
# 3
print(str1.count('23'))
# 2

7.center、rjust、ljust

字符串.center(N,字符)、字符串.rjust(N,字符)、字符串.ljust(N,字符)

字符串.zfill(N) == 字符串.rjust(N,‘0’)

8.find、index、rfind、rindex

字符串1.find(字符串2) - 获取字符串1中字符串2首次出现的位置下标,如何字符串1中没有字符串2,返回-1;

字符串1.index(字符串2) - 获取字符串1中字符串2首次出现的位置下标,如何字符串1中没有字符串2,报错;

字符串1.rfind(字符串2) - 获取字符串1中字符串2最后出现的位置下标;

字符串1.rindex(字符串2) - 获取字符串1中字符串2最后出现的位置下标;

str1 = '123adwd23asfe?a'
print(str1.find('a')) # 3
print(str1.rfind('a')) # 14
print(str1.index('a')) # 3
print(str1.rindex('a')) # 14
print(str1.find('7')) # -1
print(str1.index('7')) # 报错

9.isdigit、isnumeric- 判断是否是纯数字字符串

字符串.isdigit() - 字符只能是数字字符(0~9)

字符串.isnumeric() - 数字字符:字符的意义是表示一个数值的字符,必须是一个字符

print('123'.isdigit()) # True
print('123一十百万千ⅠⅤ壹'.isnumeric()) # True

问题:字符串的内容不确定怎么办?

1.方案一:字符串拼接

name = '小明'
age = 18
message = name + '今年' + str(age) + '岁!'
print(message) # 小明今年18岁!

2.方案二:格式字符串

格式字符串:含有格式占位符的字符串%(数据1,数据2,数据3,…)。

注意:()中数据必须和字符串中占位符一一对应。

1)格式字符串 包含格式占位符的字符串%(数据1,数据2,数据3,…)

注意:()中数据必须和字符串中占位符一一对应

2)格式占位符

%s - 字符串占位符,可以对应任何类型的数据

%d - 整数占位符,可以对应任何数字

%f - 浮点数占位符,可以对应任何数字,会在后加(.0),一般保留6位小数

%.Nf - 浮点数占位符,可以对应任何数字,让数字保留N位小数

建议:如果不控制小数位数可以全部使用%s占位

name = '小明'
age = 18
money = 18000.8
gender = '男'
message = '%s, 性别:%s, 年龄:%d, 月薪: %.2f元!' % (name, gender, age, money)
print(message)
# 小明, 性别:男, 年龄:18, 月薪: 18000.80元!

3.方案三 f-string

1)语法:f’{表达式}’ - 将{}中表达式的值作为字符串内容拼接到字符串中。

2)加参数:f’提供数据表达式:参数’

a.控制小数位数的参数;f’{表达式:.Nf}’ - 保留N位小数

b.金额数值显示加逗号

只加逗号:f’{表达式:,}’

加逗号并且控制小数位数:f’{表达式:,.Nf}’

c.显示百分比:f’{表达式:.N%}’ - N控制百分数的小数位数

d.控制长度

f’{表达式:字符>N}’ - 在表达式前加N个字符

f’{表达式:字符<N}'- 在表达式后加N个字符

name = '小明'
age = 18
money = 18000.8
gender = '男'
Body_fat = 0.25
tel = 133
message = f'{name}, 性别:{gender}, 年龄:{age}, 月薪:{money:,.2f}元!,体脂{Body_fat:,3%,电话{tel:6>7}'
print(message)
# 小明, 性别:男, 年龄:18, 月薪:18,000.80元!,体脂25.000%,电话6666133
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值