Python中的变量插值

Ail*_*lyn 9 python string

可能重复:
在Python中打印变量的Unpythonic方式?

在PHP中,可以写:

$fruit = 'Pear';
print("Hey, $fruit!");
Run Code Online (Sandbox Code Playgroud)

但在Python中它是:

fruit = 'Pear'
print("Hey, {0}!".format(fruit))
Run Code Online (Sandbox Code Playgroud)

有没有办法让我在字符串中插入变量?如果没有,这更加pythonic怎么样?

获得参考的任何人的奖励积分

knu*_*tin 11

您可以获得最接近PHP行为的是,并且仍在维护您的Python-zen:

print "Hey", fruit, "!"
Run Code Online (Sandbox Code Playgroud)

print将在每个逗号处插入空格.

更常见的Python习语是:

print "Hey %s!" % fruit
Run Code Online (Sandbox Code Playgroud)

如果你有大量的参数并想要命名它们,你可以使用一个dict:

print "Hey %(crowd)s! Would you like some %(fruit)s?" % { 'crowd': 'World', 'fruit': 'Pear' }
Run Code Online (Sandbox Code Playgroud)


Sam*_*lan 6

你现在这样做是一种pythonic方式.您还可以使用本地词典.像这样:

>>> fruit = 'Pear'
>>> print("Hey, {fruit}".format(**locals()))
Hey, Pear
Run Code Online (Sandbox Code Playgroud)

现在看起来并不是非常pythonic,但它是实现PHP格式中相同效果的唯一方法.我只是坚持你的方式.

  • 是的,你*可以* - 但是当你在它时,如何切换到"新"字符串格式?`%`-formatting有一天会被删除...... (2认同)
  • 使用`locals()`是非常糟糕的风格,永远不要这样做.传递您想要放入字符串的实际值. (2认同)