字符串中某一个或者多个部分不确定就可以用格式字符串来实现功能
name = input('姓名:')
age = int(input('年龄:'))
message = name+'今年'+str(age)+'岁!'
print(message)
1.格式占位符
语法:
包含格式占位符的字符串 % (数据1, 数据2, 数据3, ...)
说明:
- a. 数据个数和前面占位符的个数保持一致
- b. 格式占位符:
- %d - 整数
- %Nd/%-Nd - 整数填充字符串的时候宽度是N,不够的用空格在前面/后面占位
- %f - 小数
- %.Nf - .N表示保留N位小数
- %s - 字符串
注意:一般情况下占位符和数据的类型需要保持一致,只有 %s 可以用任何类型的数据填充
message = '%s今年%-5d岁,年薪:%.2f' % (name, age, 20000)
print(message)
2.format
在字符串中通过 {} 来占位表示字符串中变化的部分
1) 数据的个数和 {} 的个数保持一致
message = '{}今年{}岁!'.format(name, age)
print(message)
2) 下标形式的format: {下标}
# '你好我是XXX。 XXX你好!'
message = '你好我是{0}。{0}你好!'.format(name)
print(message)
str1 = '{1}={0}={1}'.format(10, 20)
print(str1) # 20=10=20
str2 = '{1}={2}={0}={1}'.format(1, 2, 3, 4)
print(str2) # 2=3=1=2
3) key形式的format: {key}
str3 = '{0}今年{1}岁,{0}的得分是:{2}'.format('张三', 18, 78)
print(str3)
str3 = '{name}今年{age}岁,{name}的得分是:{score}'.format(name='张三', age=18, score=78, height=180)
print(str3)
4) f(format)字符串:
f'{表达式}'
a = 10
b = 20
# 'a=x, b=x'
message = f'a={a+10}, b={b}, c={b}'
print(message)
5)数字格式化
- :.Nf - 限制小数的小数点位数(N位)
- :x>Nd - 数字占N位,不够用x填充(填在左边)
- :x<Nd - 数字占N位,不够用x填充(填在右边)
- :, - 用逗号将数据进行分隔(通用于银行数据显示)
- :.N% - 以百分比的形式显示数据,数据保留 N 位小数
print('数字:{:.2f}'.format(3.1415926)) # 数字:3.14
print('数字:{1:.2f}'.format(3.1415926, 1.68926)) # 数字:1.69
print('数字:{n2:.2f}'.format(n1=3.1415926, n2=2.34233)) # 数字:2.34
pi = 3.1415926
print(f'数字:{pi:.2f}') # 数字:3.14
print('{:0>5d}'.format(34)) # 00034
print(f'{34:a>5d}') # aaa34
print(f'{34: >5d}') # 34
print(f'{34:a<5d}') # 34aaa
num = 19029300000
print(f'{num:,}') # 19,029,300,000
num = 0.45
print(f'{num:.2%}') # 45.00%