猿问

哪一个?f 字符串或在 python3 中使用格式

python3中哪个更好?它们具有相同的输出,但大多数代码都使用格式而不是 F 字符串。

a = "Test"   

print(f"this is for {a}")

或格式?

print("This is for {}".format(a))

有时当我将 F 字符串用于目录和文件路径时,我遇到了一些错误,但使用格式没有问题。


尚方宝剑之说
浏览 128回答 1
1回答

富国沪深

正如评论中所指出的,Real Python 网站上提供了一个很好的字符串格式化方法比较。在许多情况下,与其他变体相比,f 字符串更具可读性并且更不易出现人为错误,但需要 Python >= 3.6,因此如果需要向后兼容,则可能必须避免使用。总的来说,它们是一个不错的选择,但不时会出现一些问题。嵌套 f 字符串时,必须小心使用引号。这失败了:>>> f"Hello {"there"}"&nbsp; File "<stdin>", line 1&nbsp; &nbsp; f"Hello {"there"}"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ^SyntaxError: invalid syntax但是在内部使用其他引号可以解决这个问题:>>> f"Hello {'there'}"'Hello there'但是,您不能将包含字符串文字的 f 字符串嵌套得比这更深,因为您没有更多不同的引号可供使用。我经常偶然发现的另一个问题是在 f-string 表达式部分中不允许使用反斜杠的限制,即使它们在字符串文字中:>>> f"Path: {'C:\Windows'}"&nbsp; File "<stdin>", line 1SyntaxError: f-string expression part cannot include a backslash您可以使用中间变量来解决这个问题,或者format():>>> path = 'C:\Windows'>>> f"Path: {path}"'Path: C:\\Windows'>>> "Path: {0}".format('C:\Windows')'Path: C:\\Windows'这可能是您使用 f 字符串格式化路径时遇到的问题。'\n'在使用 f-string 表达式部分中包含换行符的字符串文字时,我个人倾向于遇到此限制。
随时随地看视频慕课网APP

相关分类

Python
我要回答