哪种印刷品“更”正确?

时间:2015-05-08 15:33:05

标签: python

在python 3下,什么才算最正确?

示例1:

a='bacon'
b='salad'
print("I love {type_a} more than {type_b}".format(type_a=a, type_b=b))

示例2:

a='bacon'
b='salad'
print("I love {} more than {}".format(a, b))

这是因为有时候我看到自己用两个给定的例子进行编码,但我不确定什么是最正确的使用方式,什么时候更适合使用.format(type_a=a)代替.format(a)

3 个答案:

答案 0 :(得分:4)

如果您预期使用不同的语言,则第一种形式更合适,因为句子中单词的顺序可能需要不同。或者,如果您的替换来自字典。

第二种形式更短更直接。除非我有理由选择其他方式,否则这是我更喜欢的那个。

答案 1 :(得分:3)

它们几乎完全相同,除了在第一个中你可以重新排列传入的变量的顺序,第二个按照它们传入的顺序获取变量。

答案 2 :(得分:1)

基本上,当你只想打印这样的东西时:“var1, var2, var3, ...”,无论你使用什么形式。它只是一个样式和长度的问题:一方面,第一个例子更明确,但另一方面,它需要更多的地方,可能需要一个新的线,一般不太明显。

但是第一种形式仍然有用的地方是你有“var1 var2 var1 var3 var1”之类的东西。然后,你也有两个解决方案:

# 1
print("{} {} {} {} {}".format(var1, var2, var1, var3, var1))
# 2
print("{v1} {} {v1} {} {1}".format(var2, var3, v1=var1))

第二种解决方案通常更好,但是在最后编写关键措辞参数的需要会导致一些错误。