Python 2.7: % 字符串格式与在字符串外调用变量?
Python 2.7: % string format vs. calling variable outside string?
我正在自学 Python,除了字符串格式提供的额外格式选项(例如 %r)之外,我看不出这两个示例之间有什么巨大差异。
name = "Bob"
print "Hi, my name is %s." % name
print "Hi, my name is", name
一般来说,您有什么理由偏爱其中之一吗?
我意识到 .format() 是现在执行此操作的首选方法,但这只是为了让我更好地理解 Python 的运作方式。
编程选择:
1) 使用%明确了代码的reader的类型,但是对于使用的每一个额外的变量,程序员都需要花时间修改2 处
2) 使用 , 隐含地执行 % 所以 reader 将不得不回顾以了解他的类型。但它很快,如果代码是直观编写的,则可以消除很多维护负担
所以是的,它是在维护、可读性和便利性之间保持平衡的选择。
区别在于逗号是打印语句的一部分,而不是字符串的一部分。尝试在其他地方使用它,例如将字符串绑定到名称,将无法满足您的要求。
两者之间的主要区别(似乎没有其他人描述过)是:
print "Hi, my name is %s." % name
此处,新字符串 由两个字符串(字符串文字和 name
的值)构成。插值(%
运算符)是一种可以在任何地方使用的运算,例如,在变量赋值或函数调用中,而不仅仅是在 print
语句中。然后打印这个新生成的字符串(然后丢弃,因为没有给它命名)。
print "Hi, my name is", name
这里,两个字符串只是简单地一个接一个打印,中间有一个space。 print
语句完成了所有工作。没有执行字符串操作,也没有创建新字符串。
我正在自学 Python,除了字符串格式提供的额外格式选项(例如 %r)之外,我看不出这两个示例之间有什么巨大差异。
name = "Bob"
print "Hi, my name is %s." % name
print "Hi, my name is", name
一般来说,您有什么理由偏爱其中之一吗? 我意识到 .format() 是现在执行此操作的首选方法,但这只是为了让我更好地理解 Python 的运作方式。
编程选择:
1) 使用%明确了代码的reader的类型,但是对于使用的每一个额外的变量,程序员都需要花时间修改2 处
2) 使用 , 隐含地执行 % 所以 reader 将不得不回顾以了解他的类型。但它很快,如果代码是直观编写的,则可以消除很多维护负担
所以是的,它是在维护、可读性和便利性之间保持平衡的选择。
区别在于逗号是打印语句的一部分,而不是字符串的一部分。尝试在其他地方使用它,例如将字符串绑定到名称,将无法满足您的要求。
两者之间的主要区别(似乎没有其他人描述过)是:
print "Hi, my name is %s." % name
此处,新字符串 由两个字符串(字符串文字和 name
的值)构成。插值(%
运算符)是一种可以在任何地方使用的运算,例如,在变量赋值或函数调用中,而不仅仅是在 print
语句中。然后打印这个新生成的字符串(然后丢弃,因为没有给它命名)。
print "Hi, my name is", name
这里,两个字符串只是简单地一个接一个打印,中间有一个space。 print
语句完成了所有工作。没有执行字符串操作,也没有创建新字符串。