在后面的f-string中,
print("It's fleece was white as {}.".format('snow'))
'snow'
是变量吗?我对它究竟被判断为什么感到困惑。
答案 0 :(得分:0)
不,'snow'
是一个字符串文字,一个产生字符串值的表达式。 snow
将是变量名称(请注意缺少引号)。
比较
>>> 'snow'
'snow'
>>> snow
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'snow' is not defined
>>> snow = 42
>>> snow
42
>>> snow = 'snow'
>>> snow
'snow'
最初的变量雪尚未分配,因此尝试使用它会导致异常。然后我为名称分配了一个整数,然后为值'snow'
分配了一个字符串。
使用另一个字符串文字格式化字符串文字是没有意义的。您通常使用实际变量,因此您可以改变产生的输出:
compared_to = 'snow'
print("It's fleece was white as {}.".format(compared_to))
此外,这不是f
字符串。 f
字符串文字以f
字符开头。你在这里有一个普通的,普通的字符串文字,以及对str.format()
method的调用。以下是使用f-string的等效表达式:
print(f"It's fleece was white as {'snow'}.")
有关实际f字符串的更多信息,请参阅String with 'f' prefix in python-3.6。