原来这段文章被安排在了Python 小技巧-杂,但是篇幅有亿点长,所以分出来
f-string 的妙用与 strobj.format()方法
format 方法是 f-string 的加强版,但是它们的功能并不是完全一样的,有些时候 f-string 更好用,有些时候 format 方法更好用
写完了这段感觉两者功能又完全一样了
关于 format 方法的基础知识可以去这里看
下面例举一些 f-string 的奇妙之处
1. 引用变量
1 | a=114514 |
得
1 | 114514---1919810 |
2. 表达式求值&函数调用
1 | def f(a, b): |
得
1 | 2034324 |
3. 加强版表达式求值&函数调用
1 | def f(a, b): |
得
1 | 114514+1919810=2034324 |
真的是太方便拉~再也不用担心麻麻不知道计算结果是由什么得来的拉~
4. 利用 lambda 表达式
1 | print(f'{(lambda x: x ** 2)(2)}') |
得
1 | 4 |
5. f-string 大括号内不能使用 \
转义,但……
但是可以趁解释器不注意用~
1 | newline = '\n' |
得
1 | newline: |
6. 格式化输出
格式化的表达法非常难记,但其实只需要清楚格式化表达的几个部分就能轻松记住。
项目 | 值 |
---|---|
填充字符 | 可选值,可以是任意一个字符,只能是一个,默认是空格 |
对齐方式 | 可选值。”^”为变量居中;”<”为变量靠左;”>”为变量靠右。默认靠右。 |
总体宽度 | 可选值。整个”{}”体的宽度。 |
数字长度 | 可选值,前提是变量为对应格式。”.”后加数字,表示将这个数格式化为多少位数,可以大于数本身的位数,但不会有额外效果。还可以添加尾缀,具体见文档。 |
7. 与 format 方法一样的格式化功能
小小偷个懒
一下表格引用自CSDN
格式类型相关格式描述符
基本格式类型
格式描述符 | 含义与作用 | 适用变量类型 |
---|---|---|
s | 普通字符串格式 | 字符串 |
b | 二进制整数格式 | 整数 |
c | 字符格式,按 unicode 编码将整数转换为对应字符 | 整数 |
d | 十进制整数格式 | 整数 |
o | 八进制整数格式 | 整数 |
x | 十六进制整数格式(小写字母) | 整数 |
X | 十六进制整数格式(大写字母) | 整数 |
e | 科学计数格式,以 e 表示 ×10^ | 浮点数、复数、整数(自动转换为浮点数) |
E | 与 e 等价,但以 E 表示 ×10^ | 浮点数、复数、整数(自动转换为浮点数) |
f | 定点数格式,默认精度(precision)是 6 | 浮点数、复数、整数(自动转换为浮点数) |
F | 与 f 等价,但将 nan 和 inf 换成 NAN 和 INF | 浮点数、复数、整数(自动转换为浮点数) |
g | 通用格式,小数用 f,大数用 e | 浮点数、复数、整数(自动转换为浮点数) |
G | 与 G 等价,但小数用 F,大数用 E | 浮点数、复数、整数(自动转换为浮点数) |
% | 百分比格式,数字自动乘上 100 后按 f 格式排版,并加 % 后缀 | 浮点数、整数(自动转换为浮点数) |
常用的特殊格式类型:标准库 datetime 给定的用于排版时间信息的格式类型,适用于 date、datetime 和 time 对象
格式描述符 | 含义 | 显示样例 |
---|---|---|
%a | 星期几(缩写) | ‘Sun’ |
%A | 星期几(全名) | ‘Sunday’ |
%w | 星期几(数字,0 是周日,6 是周六) | ‘0’ |
%u | 星期几(数字,1 是周一,7 是周日) | ‘7’ |
%d | 日(数字,以 0 补足两位) | ‘07’ |
%b | 月(缩写) | ‘Aug’ |
%B | 月(全名) | ‘August’ |
%m | 月(数字,以 0 补足两位) | ‘08’ |
%y | 年(后两位数字,以 0 补足两位) | ‘14’ |
%Y | 年(完整数字,不补零) | ‘2014’ |
%H | 小时(24 小时制,以 0 补足两位) | ‘23’ |
%I | 小时(12 小时制,以 0 补足两位) | ‘11’ |
%p | 上午/下午 | ‘PM’ |
%M | 分钟(以 0 补足两位) | ‘23’ |
%S | 秒钟(以 0 补足两位) | ‘56’ |
%f | 微秒(以 0 补足六位) | ‘553777’ |
%z | UTC 偏移量(格式是 ±HHMM,未指定时区则返回空字符串) | ‘+1030’ |
%Z | 时区名(未指定时区则返回空字符串) | ‘EST’ |
%j | 一年中的第几天(以 0 补足三位) | ‘195’ |
%U | 一年中的第几周(以全年首个周日后的星期为第 0 周,以 0 补足两位) | ‘27’ |
%w | 一年中的第几周(以全年首个周一后的星期为第 0 周,以 0 补足两位) | ‘28’ |
%V | 一年中的第几周(以全年首个包含 1 月 4 日的星期为第 1 周,以 0 补足两位) | ‘28’ |