0
点赞
收藏
分享

微信扫一扫

day10

秀妮_5519 2022-02-25 阅读 53
python

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

一、相关函数: lenstreval

  1. str( 数据 ) —— 将指定数据转换成字符串(任何类型的数据都可以转换成字符串;转的时候是直接在数据的打印值外面加引号)

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

    # 将字符串转换成列表
    str1 = '[10, 20, 30]'
    print(eval(str1)) 			# [10, 20, 30]
    

二、相关方法:

  1. join

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

list1= ['name','age','gender']
result = '+'.join(list1)
print(result) 				# 'name+gae+gender'
result1 = ''.join(list1)
print(result1)				# 'nameagegender'
# 练习1:将列表list1中所有的元素用#连接成一个字符串
list1 = [100, 12.8, True, 'abc']
# '100#12.8#True#abc'
list1 = [100,12.8,True,'abc',4]
print('#'.join([str(i) for i in list1]))

# 练习2:将列表list1中所有的数字数据用#连接成一个字符串
list1 = [100, 12.8, True, 'abc', 4]
# '100#12.8#4'
result = '#'.join([str(i) for i in list1 if type(i) in (int,float)])
print(result)
  1. split

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

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

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

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

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

注意:a. 如果切割点在字符串的开头或者结尾,切完会出现空串。b. 如果切割点连续出现,切完后也会出现空串

  1. replace —— 替换

    字符串1.repace(字符串2,字符串3) —— 将字符串1中所有的字符串2都替换成字符串3

    字符串1.repace(字符串2,字符串3,N)—— 将字符串1中前N个字符串2都替换成字符串3

    # 将str1中you替换成me
    str1 = 'how are you? i am fine, thank you! and you?'
    result = str1.replace('you','me')
    print(result)				# how are me? i am fine, thank me! and me?
    
    # 将str1中最后两个you替换成me
    result1 = 'me'.join(str1.rsplit('you',2))
    print(result1)			# how are you? i am fine, thank me! and me?
    
  2. 替换字符

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

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

    str1 = '今天是星期1,昨天是星期7,明天是星期2,最喜欢星期5,最讨厌星期1早上'
    table = str.maketrans('1234567','一二三四五六天')
    result = str1.translate(table)
    print(result)	# 今天是星期一,昨天是星期天,明天是星期二,最喜欢星期五,最讨厌星期一早上
    
  3. 删除字符串两端的空白

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

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

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

    str1 = '///name//'
    print(str1.strip('/'))		# name
    
  4. count —— 统计个数

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

字符串格式化

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

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

  2. 格式占位符

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

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

    %f —— 浮点数占位符,可以对应任何数字(默认保留6位小数)

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

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

    xxx,性别:x,年龄:xx,月薪:xxxx.00元!
    '%s,性别:%s,年龄:%d,月薪:%f元!'%(name,gender,age,money)
    
  3. f-string

    1)基本用法

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

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

    2)加参数

    语法:f’{提供数据的表达式:参数}'

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

    b. 金额数值显示加逗号

    money = 180000
    result = f'金额:{money:,}元'
    print(result) 			# 金额:1,800,000.00元
    

    c. 显示百分比

    x = 0.34
    result = f'增长率:{x:%}'			# 增长率:34.000000%
    result = f'增长率:{x:.1%}'			# 增长率:34.0%
    print(result)
    

    d. 控制长度

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

    num = 8
    result = f'py2201{num:0>3}' 		# py2201008
    print(result)
    result1 = f'py2201{num:0<3}' 		# py2201800
    print(result1)
    
举报

相关推荐

0 条评论