此问题已在此处有答案:
Why can't you put quotes inside a python f-string? [closed](1个答案)
Why can I not embed a string literal inside an f-string? [duplicate](2个答案)
2天前关闭。
我遇到了一个问题,在python 3.7中,我不能将一个计算为字符串的条件表达式传递给一个f字符串。
下面是我第一次尝试的。条件语句周围的括号不会改变运行这段代码的结果。我检查过了。
condition = True
print(f"blah blah {("one" if condition else "two")}")
上面的代码引发SyntaxError: invalid syntax
并突出显示one
作为错误源(引号没有突出显示)。
但是当我在f字符串之外计算条件表达式时,SyntaxError
不会被提升:
condition = True
temp = ("one" if condition else "two")
print(f"blah blah {temp}")
上面的代码成功运行。
我甚至尝试修改反斜杠,得到了一个不同的SyntaxError
:
print(f"blah blah {(\"one\" if condition else \"two\")}")
上面的代码引发SyntaxError: f-string expression part cannot include a backslash
这不是什么大问题,但我很想知道为什么其他表达式(如var1*var2
等)可以成功计算,而我的条件表达式却不能。
3条答案
按热度按时间yv5phkfx1#
你需要混合使用单引号和双引号,否则你会产生无效的字符串:
输出:
您目前拥有:
因此,
{
/(
在第一个字符串中是打开的,但永远不会关闭。093gszye2#
与其尝试转义
""
字符,不如混合使用单引号和双引号。一个用于表达式内部,一个用于表达式外部。例如:4uqofj5v3#
只是使用不同类型的引号: