《Python3萌新入门笔记》中,我们看到了使用“%”和“format()”进行字符串格式化的操作。
在Python3.6中,又出现的一种新的格式化字符串的方法:f-string。
f-string是指以“F”或“f”为前缀的字符串。
使用方法很简单,我们来看示例:
width = 20height = 10print(f'矩形的宽为厘米,高为厘米,面积为平方厘米。')# 显示输出结果为:矩形的宽为20厘米,高为10厘米,面积为200平方厘米。
相信大家已经看懂了。
在f-string中,包含可以替换的字段,也就是通过“{}”嵌入的表达式,并且在运行时计算表达式的值。
除了上面的这个用法,我们再看一些示例:
name = '小楼'print(f'是一个美男子!')# 显示输出结果为:'小楼'是一个美男子!
上面的示例代码运行后,显示的结果中,名字两侧带有单引号。
很明显是f-sting中的“!r”在起作用。
“!r”表示对前面的“name”调用“repr()”方法。
上面的代码等价于下方代码:
name = '小楼'print(f'是一个美男子!')
与此相关的还有“!s”和“!a”分别调用“str()”方法和“ascii()”方法。
另外,在f-string中还可以通过“:”引用说明符。
提示:关于说明符,可以参考《Python3萌新入门笔记(25)》。
示例代码:
w = '10' # 宽度p = 5 # 精度value = 12.34567print(f'result: .}')# 显示输出结果为:result: 12.346
从上方代码中,大家能够看出,说明符既可以是数字,也可以是数字的字符串。
提示:宽度为10是指最终结果中“value”的字符总数量(注意前面包含了5个空格),精度为5是指最终结果中“value”所包含的数值字符总数量(不含小数点)。
除了对数值的转换说明符操作,还可以对日期进行转换操作。
示例代码:
from datetime import datetimeimport localetoday = datetime.now()locale.setlocale(locale.LC_CTYPE, 'chinese') # 解决中文异常print(f'今天是。')# 显示输出结果类似:今天是2018年07月11日。
还有,可以进行数字进制的转换。
示例代码:
number = 1024print(f'数字[]的十六进制是[]。')# 显示输出结果为:数字[1024]的十六进制是[0x400]。
以上是关于字符串格式化的各类操作介绍。
最后,大家要注意以下几点。
1、表达式中不能使用反斜杠“\”,如果需要使用的话,通过创建临时变量解决。
示例代码:(错误)
print(f'Unicode: ')
示例代码:(正确)
newline = ord('\n')print(f'Unicode: ')# 显示输出结果为:Unicode: 10
2、注意单引号和双引号的混用规则。
示例代码:
d = {'name': '小楼'}print(f'是一个大帅哥!') # 错误print(f'是一个大帅哥!') # 正确
3、要注意格式化字符串文字不能用作文档字符串,即使它们不包含表达式。
领取专属 10元无门槛券
私享最新 技术干货