循环中jupyter笔记本中的Python f字符串不起作用

问题描述

我将 python v3.8 与 jupyter 实验室笔记本一起使用,并且在循环中使用 f-string 而不是常规打印时遇到问题。 当我写在一个单元格中

a=2
f" a={a}"\
f" a={a+1}+1 "

输出是 ' a=2 a=3+1 '(如果没有那个 '反斜杠' 字符,它就只是 ' a=3+1 ',所以我猜第二个 f 字符串在这里覆盖了第一个), 但在像

这样的循环的情况下
for i in range(11):
    f"{i}"

根本没有输出,而我希望像这样打印数字

1
2
...
10

在这里做错了什么?

解决方法

您需要在格式化字符串周围添加打印语句:

for i in range(11):
    print(f"{i}")
,

它与 f-strings 无关。

没有 print 函数,Jupyter notebooks 只显示单元格中最后一行的结果:

a cell with 3 lines without print and a cell with 3 lines with print

当您使用反斜杠时,它会延续该行,Python 将其视为更长的一行。多个带引号的字符串被视为一个较长的字符串:

3 quoted strings on one line,3 quoted string on separate linse,3 quoted strings with trailing backslashes on separate lines