【问题标题】:Python f-string in jupyter notebook in loop not working循环中的jupyter笔记本中的Python f-string不起作用
【发布时间】:2021-02-06 00:17:22
【问题描述】:

我将 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

我在这里做错了什么?

【问题讨论】:

  • 也使用\n 或使用print (f"{i}")
  • 您的 for 循环错过了 f 字符串周围的打印语句。
  • 使用print(...) 打印一些东西。你得到任何输出的唯一原因是你在 REPL 中编程

标签: python-3.x jupyter-lab f-string


【解决方案1】:

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

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

【讨论】:

  • 对!我不知何故决定可以使用 f-string 代替 print(),而不是作为另一种格式化工具,而是作为 print() 的替代品......这是漫长的一周:)
【解决方案2】:

它与 f-strings 无关。

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

当你使用反斜杠时,它会继续这一行,Python 认为它是一个更长的行。多个带引号的字符串被视为一个较长的字符串:

【讨论】:

  • 对!我只是忘记了在 jupyter 中获取输出我不需要直接调用 print(),这就是为什么 f".." 自己产生输出,而不是循环。
猜你喜欢
  • 2020-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-03
  • 2020-04-14
  • 2019-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多