Python不会打印这个格式化的字符串。它在第二个引用后立即抱怨语法错误。另一方面,当我返回相同的字符串时,它就可以了。我可能很愚蠢,但这里的问题是什么?
print '{0} lands by turn {1}: {2}'.format(lands, turn, land_drop_prob(lands, turn, lands=lands_in_deck, deck_size = 60))
如前所述,如果我将“print”更改为“return”,则字符串返回正常。
答案 0 :(得分:4)
您的语法应该适用于python 2.X.但是,使用python 3.X,print
语法已更改。您必须写print("blabla")
而不是print "blabla"
。
>>> print '{0} lands by turn {1}: {2}'.format("a", "b", "c")
File "<stdin>", line 1
print '{0} lands by turn {1}: {2}'.format("a", "b", "c")
^
SyntaxError: invalid syntax
>>> print('{0} lands by turn {1}: {2}'.format("a", "b", "c"))
a lands by turn b: c
>>>