在带条件的f字符串中打印变量



似乎不能打印带有条件的f-string中的变量。我在烧瓶上运行,所以闪光。尝试删除大括号并将引号从单引号改为双引号,但仍然不起作用。输出应该是变量的值,而不是字面变量名,例如50而不是{driving_num}。

flash(f"{'The mandatory penalty for driving at {driving_num} km/h in a {speed_num} km/h zone is {msg[1]}' if msg[0] else 'The discretional penalty for driving at {driving_speed} km/h in a {speed_limit}km/h zone'} points.", WARNING_MSG)

您的内部字符串也需要是f字符串。忽略缩进,这只是为了更好的可读性:

flash(
f"{
f'The mandatory penalty for driving at {driving_num} km/h in a {speed_num} km/h zone is {msg[1]}'
if msg[0] else
f'The discretional penalty for driving at {driving_speed} km/h in a {speed_limit}km/h zone'
} points.",
WARNING_MSG
)

最新更新