字符格式化-逐步总结-f-string

Python 3.6引入了一个新的格式化字符串的方法:f-string(formatted string),它可以直接把变量写在字符串中,使得格式化的字符串看起来很直观。f可以小写,也可以用大写F。

一、变量使用:
例1:name = '张三'  print(f'姓名:{name}')>>>姓名:张三。简单说就是{}里直接加变量。
例2:i = 0  print(f'{{{i}}}')>>>{0}。如果需要在f-string中使用{},如想要输出'{序号}',则使用{{}}。

二、表达式使用:
例1:print(f'{1+2*3}')>>>7。

三、函数使用:
例1:print(f'{math.pow(2, 3)}')>>>8.0。
例2:print(f'{(lambda x: 2 * x)(3)}')>>>6。使用lambda表达式时需要注意把表达式的定义用括号括起来,否则会报错。

四、其他事项:
1、转义字符只能在{}外,如实在有需要,则另用变量。
2、{}内如需使用{},则使用多对{{}}。参考变量使用的例2。
3、可使用'',"",'''''',""""""交替使用来避免引号冲突(和内容里的引号区别开就行,比如内容里有",那就用')。

五、格式化:
例1:print((f'{math.pi:.2f}'))>>>3.14。冒号 : 分隔变量与格式化的描述符,其中.2f表示取浮点数的小数点后两位。其他可参考format的格式化方法。
例2:print(f"{math.pi:010.2f}")>>>0000003.14。表示字符串全长为10,截取小数点后两位,高位用0补齐。
例3:print(f"{12345678:_d}")>>>12_345_678。表示将数字各位之间用分隔符分开。格式化方法见附表(数字分割描述符)。
例4:print(f"{'12345':_<10}")>>>12345_____。<左对齐填充10位,用_补足。(结尾是5个_)冒号后先指定填充符号,再指定对齐方式,最后指定位数。
例5:print(f"{'12345':_>10}")>>>_____12345。>右对齐填充10位,用_补足。(前面是5个_)格式化方法见附表(数字分割描述符)。
例6:print(f"{'12345':_^10}")>>>__12345___。^居中对齐填充10位,用_补足。(前面是2个_,结尾是3个_)
例7:print(f"{'12345':_>10.100}")>>>_____12345。.后为指定变量长度,不足就截断。因100>5,所以不会截断。(前面是5个_)
例8:print(f"{'12345':_>10.2}")>>>________12。.后为指定变量长度,不足就截断。因2<5,所以截断。(前面是8个_)
例9:print(f"{date.today():%m-%d %Y}")>>>07-24  2023。from datetime import date。-分隔符可任意。格式化方法见附表(时间/日期格式化描述符)

六、附表:
数字分割描述符:逗号适用于浮点数、复数和十进制整数;下划线适用于浮点数、复数和所有进制的整数;如果不指定分隔符,那么默认不使用分隔符。

格式描述符含义与作用
, 使用 , 作为千位分隔符
_ 使用 _ 作为千位分隔符

数字展示方式描述符: 

格式描述符含义与作用
# 切换数字显示方式

 

数字类型不加“#”(默认情况)加上“#”加上后的变化
二进制 111 1101 0b111 1101 前面显示“0b”
八进制 175 0o175 前面显示“0o”
十进制 125 125
十六进制 7D 0x7D 前面显示0X或0x(视原数字是否使用大写字母而定)

数字符号格式化描述符:

格式描述符含义与作用
+ 负数前加负号(-),正数前加正号(+)
- 负数前加负号(-),正数前不加任何符号(默认)
(空格) 负数前加负号(-),正数前加一个空格

填充截断描述符:

格式描述符含义与作用
< 左对齐(字符串默认对齐方式)
> 右对齐(数值默认对齐方式)
^ 居中

格式描述符:

格式描述符含义与作用适用变量类型
s 普通字符串 字符串
b 二进制整数 整数
c 字符格式,按Unicode编码转换为对应字符 整数
d 十进制整数 整数
o 八进制整数 整数
x 十六进制整数,使用小写字母 整数
X 十六进制整数,使用大写字母 整数
e 科学计数法,用 e 表示阶数 浮点数、复数、整数(自动转换成浮点数)
E 与e等价,用 E 表示阶数 浮点数、复数、整数(自动转换成浮点数)
f 小数,默认精度为6 浮点数、复数、整数(自动转换成浮点数)
F 与f等价,但将nan和inf转成大写 浮点数、复数、整数(自动转换为浮点数)
g 通用小数的格式,小数用f;大数用e 浮点数、复数、整数(自动转换为浮点数)
G 与G等价,但使用大写字符 浮点数、复数、整数(自动转换为浮点数)
% 百分比格式 浮点数、整数(自动转换为浮点数)

宽度描述符:
其中width适用于字符串,不适用于数字;0width适用于数字,不适用于字符串;width.precision的precision如果用在字符串上,则指定是前n位,如果用在浮点数上,则指定小数点后n位。

格式描述符含义与作用
width 整数 width 指定宽度
0width 整数 width 指定宽度,开头的 0 指定高位用 0 补足宽度
width.precision 整数 width 指定宽度,整数 precision 指定显示精度

时间/日期格式化:

格式描述符含义显示样例
%a 星期几,使用缩写 Sun
%A 星期几,使用完整名称 Sunday
%w 星期几,从周日算起,周日为0 7
%u 星期几,从周一算起,周日为7 6
%d 日期,2位数字 04
%b 月份,使用缩写 Mar
%B 月份,使用完整名称 March
%m 月份,2位数字 03
%y 年份,后2位数字 23
%Y 年份,4位数字 2023
%H 小时,24小时制 21
%I 小时,12小时制 09
%p 上午/下午 PM
%M 分钟,2位数字 12
%S 秒钟,2位数字 20
%f 微秒,6位数字 123321
%z UTC偏移量,±HHMM[SS],未指定时区则返回空字符串 +1030
%Z 时区名 CST
%j 一年中的第几天,3位数字 063
%U 一年中的第几周,2位数字,首个周日后的星期为第0周 09
%W 一年中的第几周,2位数字,首个周一后的星期为第0周 09
%V 一年中的第几周,2位数字,首个包含1月4日的星期为第1周 09
参考文章:https://blog.csdn.net/qq_47993287/article/details/129339543
posted @ 2023-07-24 23:19  sbsdnyn  阅读(33)  评论(0编辑  收藏  举报