day10总结

1.字符串常见的相关方法

1.1 字符串.join(序列) 将序列中的元素用指定的字符串拼接接在一起,形成一个新的字符串(序列中的元素必须是字符串)

list1 = ['后裔', '王昭君', '鲁班7号', '孙悟空']
result = ''.join(list1)
print(result)       # '后裔王昭君鲁班7号孙悟空'

result = '+'.join(list1)
print(result)       # '后裔+王昭君+鲁班7号+孙悟空'

注意:如果序列中的元素不是字符串,就将其转换成字符串,再进行拼接。

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

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

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

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

str1 = 'abcmn123mnkplmn##'
result = str1.split('mn', 2)
print(result)

注意:切割点的数量为N,则切割的段数为 N+1

​ 字符串切割的结果为列表,可结合列表推导式使用

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

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

str1 = 'mnabcmnmn123mnkplmn##mn'
result = str1.replace('mn', 'ABC')
print(result)

result = str1.replace('mn', '')
print(result)

result = str1.replace('mn', 'AB', 3)
print(result)

1.4 字符串.strip() 删除字符串左右两端的空白字符

1.5 find、index

​ 1.5.1字符串1.find(字符串2) 获取字符串1中字符串2第一次出现的位置(以0开始的下标值返回)如果字符串2不存在返回-1

​ 1.5.2字符串1.index(字符串2) 获取字符串1中字符串2第一次出现的位置(以0开始的下标值返回) 如果字符串2不存在报错!

​ 1.5.3 字符串1.find(字符串2,开始下标,结束下标) 获取字符串1中指定范围内字符串2第一次出现的位置

​ 1.5.4 字符串1.index(字符串2,开始下标,结束下标)

 ```py
 str1 = 'how are you? I am fine, thank you! and you?'
 print(str1.find('you'))
 print(str1.index('you'))
 
 print(str1.find('abc'))     # -1
 # print(str1.index('abc'))      # 报错!
 
 print(str1.find('you', 10))     # 30
 print(str1.find('you', 10, 26))     # -1
 
 ```

​ 1.5.5 rfind、rindex

str1 = 'how are you? I am fine, thank you! and you?'
print(str1.rfind('you'))

2.解决字符串内容变化的方法

​ 2.1 字符串拼接

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

money = 15000
# xxx今年xx岁!月薪:xxxx.xx元
message = name + '今年' + str(age) + '岁!月薪:' + str(money) + '元'
print(message)

注意:字符串只能用字符串拼接,不是字符串要先转换成字符串。

​ 2.2 格式字符串

​ 语法:包含一个或者多个格式占位符 的字符串 % (数据1,数据2,数据3…)

说明:( )中的数据必须和前面字符串中的占位符一 一对应,如果只需要一个数据,那么( )可以省略。

常用的字符串占位符:

%s - 可以给任何类型的数据占位(字符串占位符)

%d - 只能给数字数据占位,整数占位符

%f - 只能给数字数据占位,浮点数占位符,默认保留6位小数

%.Nf 只能给数字数据占位(保留N位小数)

# xxx今年xx岁!月薪:xxxx.xx元
message = '%s今年%d岁!月薪:%.2f元' % (name, age, money)
print(message)

result = '%s%s%s-%s' % ('abc', 12, [10, 20], 3.456)
print(result)       # 'abc12[10, 20]'

result = '%d-%d' % (12, 2.34)
print(result)

result = '%f-%f' % (2.3, 34)
print(result)

result = '%.2f-%.1f' % (2.3, 34)
print(result)


​ 2.3 f - string

​ 2.3.1 f - string 的基本用法:如果在字符串的最外面加了 f,就可以在字符串中通过{}来给字符串提供内容: {表达式} - 表达式的结果就是对应的字符串内容

name = '小明'
age = 18
money = 15000

str1 = '姓名:{name}, 年龄:{age}'
print(str1)     # '姓名:{name}'

str2 = f'姓名:{name}, 年龄:{age}'
print(str2)     # '姓名:小明'

str3 = f'a:{age}, b:{100}, c:{100 * 2}, d:{100 > 200}, c:{name * 2}, d:{name[-1]}'
print(str3)

# xxx今年xx岁!月薪:xxxx元
message = f'{name}今年{age}岁!月薪:{money}元'
print(message)

​ 2.3.2 f - string 的参数:{提供数据的表达式:参数}

​ a.控制小数位数:{提供数据的表达式:参数.Nf}

money = 672828279
result = f'余额:{money:.2f}元'
print(result)

num = 102.3447
result = f'个数:{num:.0f}'
print(result)

money = 16500
result = f'年薪:{money*13:.2f}元'
print(result)

​ b.大金额逗号分隔:{提供数据的表达式:,}

money = 165009000
result = f'金额:{money:,}元'
print(result)       # 金额:165,009,000元

​ c.小数显示成百分比:{提供数据的表达式:.N%}

scale = 0.84
result = f'及格率:{scale:.1%}'
print(result)

​ d.控制填充长度(实现center、rejust、ljust、zfill的功能)

# {提供数据的表达式:字符>长度}、{提供数据的表达式:字符<长度}、{提供数据的表达式:字符^长度}
# 注意:如果没有提供字符,会用空格填充
num = 6
result = f'{num:0>3}'
print(result)     # '006'

result =f'{num:x>7}'
print(result)       # 'xxxxxx6'

result =f'{num:x<7}'
print(result)      # '6xxxxxx'

result =f'{num:x^7}'        # 'xxx6xxx'
print(result)


result = f'编号:{num:>7}'
print(result)

nums = [155, 1, 92, 9, 23, 889, 18, 5821, 47, 8993]
for x in nums:
    print(f'编号:{x:>4}')

7}’
print(result) # ‘6xxxxxx’

result =f’{num:x^7}’ # ‘xxx6xxx’
print(result)

result = f’编号:{num:>7}’
print(result)

nums = [155, 1, 92, 9, 23, 889, 18, 5821, 47, 8993]
for x in nums:
print(f’编号:{x:>4}')


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值