Python和F-Strings的解释

时间:2018-05-21 19:57:35

标签: python python-3.6

在后面的f-string中,

print("It's fleece was white as {}.".format('snow'))

'snow'是变量吗?我对它究竟被判断为什么感到困惑。

1 个答案:

答案 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