Python3.6字符串格式化

Python 投稿 44900 0 评论

Python3.6字符串格式化

以下主要是针对Python3.6中格式化字符串的示例。

在Python3.6中,又出现的一种新的格式化字符串的方法:f-string。

f-string是指以“F”或“f”为前缀的字符串。

使用方法很简单,来看示例:

width = 20
height = 10
print(f'矩形的宽为{width}厘米,高为{height}厘米,面积为{width*height}平方厘米。')
# 显示输出结果为:矩形的宽为20厘米,高为10厘米,面积为200平方厘米。

相信大家已经看懂了。

在f-string中,包含可以替换的字段,也就是通过“{}”嵌入的表达式,并且在运行时计算表达式的值。

除了上面的这个用法,再看一些示例:

name = '小明'
print(f'{name!r}是一个美男子!')
# 显示输出结果为:'小明'是一个美男子!

上面的示例代码运行后,显示的结果中,名字两侧带有单引号。

很明显是f-sting中的“!r”在起作用。

“!r”表示对前面的“name”调用“repr()”方法。

上面的代码等价于下方代码:

name = '小明'
print(f'{repr(name)}是一个美男子!')

与此相关的还有“!s”和“!a”分别调用“str()”方法和“ascii()”方法。

另外,在f-string中还可以通过“:”引用说明符。

示例代码:

w = '10'  # 宽度
p = 5  # 精度
value = 12.34567
print(f'result: {value:{w}.{p}}')
# 显示输出结果为:result:     12.346

从上方代码中,大家能够看出,说明符既可以是数字,也可以是数字的字符串。

提示:宽度为10是指最终结果中“value”的字符总数量(注意前面包含了5个空格),精度为5是指最终结果中“value”所包含的数值字符总数量(不含小数点)。

除了对数值的转换说明符操作,还可以对日期进行转换操作。

示例代码:

from datetime import datetime
import locale

today = datetime.now()
locale.setlocale(locale.LC_CTYPE, 'chinese')  # 解决中文异常
print(f'今天是{today:%Y年%m月%d日}。')
# 显示输出结果类似:今天是2018年07月11日。

还有,可以进行数字进制的转换。

示例代码:

number = 1024
print(f'数字[{number}]的十六进制是[{number:#0x}]。')
# 显示输出结果为:数字[1024]的十六进制是[0x400]。

以上是关于字符串格式化的各类操作介绍。

要注意以下几点:

1、表达式中不能使用反斜杠“\”,如果需要使用的话,通过创建临时变量解决。

示例代码:(错误)

print(f'Unicode: {ord("\n")}')

示例代码:(正确)

newline = ord('\n')
print(f'Unicode: {newline}')
# 显示输出结果为:Unicode: 10

2、注意单引号和双引号的混用规则。

示例代码:

d = {'name': '小明'}
print(f'{d['name']}是一个大帅哥!')  # 错误
print(f'{d["name"]}是一个大帅哥!')  # 正确

3、要注意格式化字符串文字不能用作文档字符串,即使它们不包含表达式。

编程笔记 » Python3.6字符串格式化

赞同 (59) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽