关于括号的简单问题。我很想知道为什么括号有时会打印出来,有时候会保持隐形&#39 ;?在这种情况下,我可以给出一个代码示例和答案,以显示我的意思。
如果我输入:
name = "Larry"
print(name)
print("Hi", name)
raw_input("Enter to exit program")
为什么我会得到这个答案:
Larry
('Hi', 'Larry')
Enter to exit program
拉里没有括号,也没有单引号。然而('嗨','拉里')是括号和单引号?
有人可以指出发生了什么事吗?
答案 0 :(得分:2)
括号中的表达式被解释为一种特殊的数据类型,一种元组 - 一起收集一些值的东西。可以在Python中使用单引号和双引号来表示字符串。
在Python 2.7中,当您print
时,括号是不必要的,并且可能导致解释问题。删除它们,看看会发生什么。
与此代码比较:
a = ('hello', 3) #a tuple
print a
print 'hello', 3
另一方面,在Python 3中,括号是必要的。
答案 1 :(得分:1)
最新版的Absolute Beginners Python是2010年1月发布的第三版,适用于Python 3.您使用的是Python 2.7。在Python 2.7 print
是一个语句,不需要括号。因此,当Python 2.7看到print("Hi", name)
时,它会看到print
和元组("Hi", name)
。如果您使用的是Python 3,它会将括号解释为带有两个参数的函数调用的一部分。解决问题的正确方法是使用Python 3,因为这正是您的书所教导的。
Python 2.7:
>>> name = "Larry"
>>> print(name)
Larry
>>> print("Hi", name)
('Hi', 'Larry')
Python 3:
>>> name = "Larry"
>>> print(name)
Larry
>>> print("Hi", name)
Hi Larry
通过执行from __future__ import print_function
可以使Python 2.7像Python 3一样,但我建议不要这样做,因为在阅读本书时会遇到其他不兼容问题。