字符串相关函数

字符串相关函数和相关方法

相关函数:len、str、eval

1.str(数据) - 将指定数据转换成字符串(转的时候是直接在数据的打印值外面加引号)

str(100)   #'100'
str(True)  #'True'

list1 = [10,20,30]
str(list1)     #'[10, 20, 30]'

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

‘[10, 20, 30]’ -> [10, 20, 30]

str1 = '[10, 20, 30]'
result = eval(str1)
print(result)         #[10, 20, 30]

相关方法

1.字符串.join()

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

‘a’.join()

练习1:将列表list1中所有的元素用#连接成一个字符串

list1 = [100, 12.8, True, 'abc']
result = '#'.join(str(x) for x in list1)
#'100#12.8#True#abc'
list2 = []
for i in list1:
    list2.append(str(i))
list1 = '#'.join(list2)
print(list1)
print(result)

练习2:将列表list1中所有的数字数据用#连接成一个字符串

list1 = [100, 12.8, True, 'abc',4]
result = '#'.join([str(x) for x in list1 if type(x) in (int,float)])
list2 = []
for i in list1:
    if type(i) == int or type(i) == float:
        list2.append(str(i))
list1 = '#'.join(list2)
print(list1)
print(result)

2.split

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

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

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

str1 = '123*abc*mn'
result = str1.split('*')
print(result)     #['123','abc','mn'] 

#注意1:如果切割点在字符串的开头或者结尾,切完后会出现空串

#注意2:如果切割点连续出现,切完后也会出现空串

str1 = '*123*abc*mn*'   #['','123','abc','mn','']
reslut = str1.rsplit('*',2)

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?'
result1 = str1.replace('you','me')
print(result1)

result2 = str1.replace('you','me',2)
print(result2)

#练习:将str1中最后两个you替换成me

result = 'me'.join(str.rsplit('you',2))
print(result)

4.替换字符

#str.maketrans(字符串1,字符串2) - 创建字符串1中所有字符和字符串2中所有字符一一对应关系表

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

str = '1234567'
table = str.maketrans('1234567','一二三四五六天')
str.translate(table)
prinr(result)

5.删除字符串两端的空白

#字符串.strip() - 删除字符串两边的空白

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

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

str = 'name//'
print(str.strip('/'))

6.count - 统计个数

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

str1 = 'how are you? i am fine, thank you! and you?'
print(str1.count('0'))
print(str1.count('you'))

center、rjust、ljust、zfill

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

find、index、rfind、rindex

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

#isdigit - 数字字符:’0‘ -’9‘

#isnumeric - 数字字符:字符的意义是表示一个数值的字符

格式字符串

1.字符串格式化

name = input('请输入姓名:')
age = int(input('请输入年龄:'))

#xxx今年xx岁了

方案一:字符串拼接

message = name + '今年' + str(age) + '岁!'
print(message)

方案二:格式字符串

”“”

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

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

2)格式占位符

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

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

%f - 浮点占位符,可以对应任何数字

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

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

“”“

money = 18000
gender = '男'
#xxx,性别:x,年龄:xx,月薪:xxxxx.00元!
#'%s,性别:%d,年龄:%d,月薪:%f元' % (name, gender,age,money)

message = '%s,性别:%s,年龄:%d,月薪:%.2f元' % (name, gender,age,money)
print(message)

方案三:f-string

1)基本用法

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

message = f'{name},性别:{gender},年龄:{age},月薪:{money}元'
print(message)

#2)加参数

f’{提供数据表达式:参数}‘

a.控制小数位的参数

f’{表达式:.Nf}’ - 保留N位小数

b.金额数值显示加逗号

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

money = 1800000
result = f'金额:{money:,}元’
print(result)

加逗号并且控制小数位数

result = f'金额:{money:,.2f}元’
print(result)

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

x = 0.34
result = f'增长率:{x:.2%}'
print(result)

d.控制长度

f’{表达式:字符>N}’、f’{表达式:字符>N}’

x = ‘abc’

result = f’姓名:{x}’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值