字符串的拼接会产生很多新的字符串对象,造成内存空间的浪费。并且在Python中完全不同的两个东西时不能拼接到一起的,比喻说字符串和整数不能拼接到一起。所以可以使用格式化字符串来解决这一些问题。
name = 'Bob'
age = 20
print(name+'hello') # Bobhello
print(name+age) # TypeError: can only concatenate str (not "int") to str
1、% 作占位符
%c | 格式化字符及其ASCII码 |
%d或者%i | 格式化整数 |
%s | 格式化字符串 |
%f | 格式化浮点数,可以指定小数点后的精度,默认保留小数点后6位。 |
%e | 科学计数法 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
print('%c' % 97) # a
name = 'Bob'
age = 20
score = 89.5
print('我的名字叫%s,今年%d岁了,我的成绩是%f。' % (name,age,score)) # 我的名字叫Bob,今年20岁了,我的成绩是89.500000。
# 占位符和实际值的个数要一样,否则报错
print('我的名字叫%s,今年%d岁了,我的成绩是%s。' % (name,age)) # TypeError: not enough arguments for format string
注意:输入的个数和占位符的个数要一样,否则会报错。
2、format()方法,使用{} 作占位符
format():将接收到的参数格式化,并将他们放到占位符{}所在的字符串中。它接收的参数不限数量,可分为位置参数和关键字参数
可以通过索引来确保参数被放在了正确的占位符中。
name = 'Bob'
age = 20
score = 89.5
# 位置参数
print('我的名字叫{0},今年{1}岁了,我的成绩是{2:.2f}。'.format(name,age,score)) # 我的名字叫Bob,今年20岁了,我的成绩是89.57。
# 关键字参数
print('我的名字叫{a},今年{b}岁了,我的成绩是{c:.2f}。'.format(a = name,b = age,c = score)) # 我的名字叫Bob,今年20岁了,我的成绩是89.57。
# 不写索引号,就是按顺序放
print('我的名字叫{},今年{}岁了,我的成绩是{}。'.format(name,age,score)) # 我的名字叫Bob,今年20岁了,我的成绩是89.5。
# 根据占位符中的索引号放入相应的数据
print('我的名字叫{1},今年{0}岁了,我的成绩是{2}。'.format(age,name,score)) # 我的名字叫Bob,今年20岁了,我的成绩是89.5。
print('我的名字叫{0},今年{1}岁了,我爱{0}。'.format(name,age)) # 我的名字叫Bob,今年20岁了,我爱Bob。
3、f-string 格式化字符串
f'{}’ 在需要添加变量的地方写上 {变量名} 即可 。字符串前面的 f 不要忘了。
name = 'Bob'
age = 20
score = 89.5
print(f'我叫{name},今年{age}岁了,我的成绩是{score}') # 我叫Bob,今年20岁了,我的成绩是89.5
设置宽度和精度
m.n 其中m表示显示的宽度,n表示小数点后的位数。
%.2f 表示保留小数点后两位。
# %10d 中的10表示宽度
print('%10d' % 6) # 6
print('%10s' % 'aa')# aa
# %.3f 表示保留小数点后3位。
print('%.3f' % 3.1415926) #3.142
# 同时表示宽度和精度
print('%10.3f' % 3.1415926) # 3.142
# :前面的索引号可以省略不写,10.3f中的10表示宽度,.3f表示保留小数点后3位
print(' {:10.3f} '.format(3.1415926)) # 3.142
# {2:.3f} 2表示占位符的索引,.3f表示的是精度
print('我的名字叫{0},今年{1}岁了,我的成绩是{2:.3f}。'.format(name,age,score)) # 我的名字叫Bob,今年20岁了,我的成绩是89.568。
print(f'我叫{name},今年{age:5}岁了,我的成绩是{score:.2f}') # 我叫Bob,今年 20岁了,我的成绩是89.57
© 版权声明
本站网络名称:
尤尤博客
本站永久网址:
https://www.yxfseo.cn
网站侵权说明:
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,请在24H内删除。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END
暂无评论内容