(了解) 旧式字符串格式化(% 运算符)
用法:” %说明符 %说明” % (参数1,参数2,……)
转换说明符
说明
%
带百分号输出,不能用在格式化运算符 %中
%b
转换为带符号的二进制形式的字符串,不能用在格式化运算符 %中
%i
转换为带符号的十进制形式的整数,不能用在format中
%d
转换为带符号的十进制形式的字符串
%o
转换为带符号的八进制形式的字符串
%x,%X
转换为带符号的十六进制形式的字符串
%e
转化为科学计数法表示的浮点数(e 小写)
%E
转化为科学计数法表示的浮点数(E 大写)
%f,%F
转化为十进制形式的浮点数
%g
智能选择使用 %f 或 %e 格式
%G
智能选择使用 %F 或 %E 格式
%c
输出整数对应的 Unicode 字符
%r
使用 repr() 将变量或表达式转换为字符串
%s
使用 str() 将变量或表达式转换为字符串
Python 支持的标志
标志
说明
–
指定左对齐
+
表示输出的数字总要带着符号;整数带+,负数带-。
0
表示宽度不足时补充 0,而不是补充空格。
m.n.
m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
#
在八进制数前面显示零(‘0′),在十六进制前面显示’0x’或者’0X'(取决于用的是’x’还是’X’)
事例代码如下:
print(“my name is %s and i am %d years old” %(“xiaoming”,18))
#输出结果:my name is xiaoming and i am 18 years old
print(“Hello,%s” % “Tom”)
#输出结果:Hello,Tom
# %d digit 数字
age = 18
print(‘年龄是:%d’ % age)
age=18.5 # int(18.5)—>18 取整数
print(‘年龄是:%d’ % age)
year=2019
print(‘今年是:%02d’ % year) # 仍然是2019 但是%f就可设置位数
name = “C语言中文网”
age = 8
url = “http://c.biancheng.net/”
print(“%s已经%d岁了,它的网址是%s。” % (name, age, url))
#指定小数精度
f = 3.141592653
# 最小宽度为8,小数点后保留3位
print(“%8.3f” % f)
# 最小宽度为8,小数点后保留3位,左边补0
print(“%08.3f” % f)
# 最小宽度为8,小数点后保留3位,左边补0,带符号
print(“%+08.3f” % f)
print(‘%#x’ % 108) #0x6c 十进制108,十六进制等于6c,int(‘6c’,base=16)
新式字符串格式化(str.format)
1)、使用格式:
<模板字符串中包括{<参数序号>: <格式控制标记>}>.format(<逗号分隔的参数>)
2)、<格式控制标记>用来控制参数显示时的格式,包括:<填充><对齐><宽度>,<.精度><类型>6 个字段,如下图:
3)、参数序号从0 开始编号。format 函数可以接受不限个参数,位置可以不按顺序。
如:”{1} {0} {1}”.format(“hello”, “world”) 输出结果为“’world hello world”。
4)、format()方法优点如下:不需要关注数据类型,而在%方法中%s只能替代字符串类型
单个参数可以多次输出,参数顺序可以不相同
填充方式十分灵活,对齐方式十分强大
官方推荐用的方式,%方式将会在后面的版本被淘汰
数字
格式
输出
描述
3.1415926
{:.2f}
3.14
保留小数点后两位
3.1415926
{:+.2f}
+3.14
带符号保留小数点后两位
-1
{:+.2f}
-1.00
带符号保留小数点后两位
2.71828
{:.0f}
3
不带小数
5
{:0>2d}
05
数字补零 (填充左边, 宽度为2)
5
{:x<4d}
5xxx
数字补x (填充右边, 宽度为4)
10
{:x<4d}
10xx
数字补x (填充右边, 宽度为4)
1000000
{:,}
1,000,000
以逗号分隔的数字格式
0.25
{:.2%}
25.00%
百分比格式
1000000000
{:.2e}
1.00e+09
指数记法
13
{:10d}
13
右对齐 (默认, 宽度为10)
13
{:<10d}
13
左对齐 (宽度为10)
13
{:^10d}
13
中间对齐 (宽度为10)
11
‘{:b}’.format(11)
‘{:d}’.format(11)
‘{:o}’.format(11)
‘{:x}’.format(11)
‘{:#x}’.format(11)
‘{:#X}’.format(11)
1011
11
13
b
0xb
0XB
进制
字符串函数format函数事例代码如下:
>>> “{0} {1}”.format(“hello”, “world”) # 设置指定位置
#’hello world’
>>> “{1} {0} {1}”.format(“hello”, “world”) # 设置指定位置
#’world hello world’
>>> print(“{:.2f}”.format(3.1415926));
#3.14
print(“网站名:{name}, 地址 {url}”.format(name=”菜鸟教程”, url=”www.runoob.com”))
# 通过字典设置参数
site = {“name”: “菜鸟教程”, “url”: “www.runoob.com”}
print(“网站名:{name}, 地址 {url}”.format(**site))
# 通过列表索引设置参数
my_list = [‘菜鸟教程’, ‘www.runoob.com’]
print(“网站名:{0[0]}, 地址 {0[1]}”.format(my_list)) # “0” 是必须的
#列表
>>>list=[‘罗带同心结未成’,’江头潮已平’]
>>>”{0[0]}”.format(list)
‘罗带同心结未成’
>>> print(“这是一句诗:{0[0]}”.format(list))
这是一句诗:罗带同心结未成
#通过字典
>>> di={“学校”:”某某大学”,”姓名”:”我爱学习”}
>>> “地点:{学校},姓名:{姓名}”.format(**di)
‘地点:某某大学,姓名:我爱学习’
f-string格式化
f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,主要目的是使格式化字符串的操作更加简便。f-string在形式上是以 f 或 F 修饰符引领的字符串(f’xxx’ 或 F’xxx’),以大括号 {} 标明被替换的字段;f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式:
f-string 格式化 就是在字符串模板前面加上f,然后占位符使用{} ,里面直接放入对应的数据对象。
salary = input(‘请输入薪资:’)
# 计算出缴税额,存入变量tax
tax = int(salary) *25/100
# 计算出税后工资,存入变量aftertax
aftertax = int(salary) *75/100
print(f’税前薪资是:{salary}元, 缴税:{tax}元, 税后薪资是:{aftertax}元’)