字符串
一、字符串相关方法
-
字符串.join(序列)
将序列中的元素用指定的字符串拼接在一起,形成一个新的字符串(序列中的元素必须是字符串)。
注意:如果需要的join序列中的元素不是字符串,就想办法把他的元素变成字符串。
nums=[23,45,67,89,45] '2345678945' result = ''.join([str(i) for i in nums]) print(result) # '2345678945'
-
字符串1.split(字符串2)
将字符串1中所有的字符串2作为切割点对字符串1进行切割,返回包含切割后每一小段对应的字符串的列表。
字符串1.split(字符串2,n):将字符串1中前n个字符串2作为切割点对字符串1进行切割。
str1='mnabcmn123mnmnkplmn##mn' result = str1.split('mn',2) print(result) # ['', 'abc', '123mnmnkplmn##mn']
-
字符串1.replace(字符串2,字符串3)
将字符串1中所有的字符串2都替换成字符串3。
str1='mnabcmn123mnmnkplmn##mn' result=str1.replace('mn','*') print(result) # *abc*123**kpl*##*
字符串1.replace(字符串2,字符串3,n) —— 将字符串1中前n个的字符串2都替换成字符串3。
-
字符串.strip() —— 删除字符串左右两端的空白字符
-
字符串.rstrip()
-
字符串.lstrip()
str1 = '/小明' result=str1.strip('/') print(result) # 小明
-
-
find、index
字符串1.find(字符串2) - 获取字符串1中字符串2第一次出现的位置(以0开始的下标值返回),如果字符串2不存在返回-1。
字符串1.index(字符串2) — 获取字符串1中字符串2第一次出现的位置(以0开始的下标值返回),如果字符串2不存在报错。
字符串1.find(字符串2,开始下标,结束下标) - 获取字符串1中指定范围内字符串2第一次出现的位置。
字符串1.index(字符串2,开始下标,结束下标)
-
其他方法
- 字符串.islower() —— 判断字符是否是小写字母
- 字符串.isupper() ——判断字符是否是大写字母
- 字符串.isdigit() ——判断字符是否是数字
- 字符串.lower() —— 将大写字母转换为小写字母
- 字符串.upper() —— 将小写字母转换为大写字母
-
maketrans、translate
str1='星期1,星期2,星期3,星期4,星期5,星期6,星期7' table=str.maketrans('1234567','一二三四五六天') result=str1.translate(table) print(result)
二、字符串格式化
-
字符串拼接
name='小明' age=20 money = 15000 # xxx今年xx岁!月薪:xxxx元 message = name+'今年'+str(age)+'岁!月薪:'+str(money)+'元' print(message)
-
字符串格式化
格式字符串:包含一个或多个格式占位符的字符串 %(数据1,数据2,数据3,…)。
说明:()中的占位符必须和前面的字符串中的占位符一一对应,如果只有一个数据,可以省略()。
常用的字符串占位符:
%s - 可以给任何类型的数据占位(字符串占位符);
%d - 只能给数字数据占位(整数占位符);
%f - 只能给数字数据占位(浮点数占位符,默认保留6位小数);
%.Nf - 只能给数字数据占位(保留n位小数);esult = '%s%s%s-%s'%('abc',12,[10,20],3.456) print(result) # abc12[10, 20]-3.456 result = '%d-%d'%(12,2.34) print(result) # 12-2 result = '%f-%f'%(12,2.34) print(result) # 12.000000-2.340000 result = '%.2f-%.1f'%(12,2.34) print(result) # 12.00-2.3
-
f-string
name = '小帅'
age=12
str1 = f"姓名:{name},年龄:{age}"
print(str1)
f-string的参数{提供数据的表达式:参数}
控制小数位数:{提供数据的表达式:.Nf}
money = 265465
result = f"余额:{money:.2f}元"
print(result)
-
大金额逗号分割
money = 265465234 result = f"余额:{money:,}元" print(result) 余额:265,465,234元
可以连用:
money = 265465234
result = f"余额:{money:,.2f}元"
print(result)
余额:265,465,234.00元
- 小数显示成百分比:{提供数据的表达式:.N%}
scare = 0.86
result = f"及格率:{scare:.1%}"
print(result)
-
控制填充长度(实现center,rjust, ljust ,zfill)
{提供数据的表达式:字符>长度} {提供数据的表达式:字符<长度} {提供数据的表达式:字符^长度}
num = 3 result = f"{num:0>6}" print(result) > :填充num字符长度到6,不够的用0补充,>表示填充在原来字符串前面 num = 3 result = f"{num:0<6}" print(result) < 表示填充在原来字符串后面
num = 3 result = f"{num:0^6}" print(result) ^ 表示填充在原来字符串两端 num = [2,3,5676,88,54,3,78,435,8765] for i in num: result = f"{i:>6}" print(result) 没有写填充字符表示用空格代替