我已经开始使用Learn Python the Hard Way学习Python编程。 Exercise 3有一些数学练习,例如:
print("Hens", 25 + 30 / 6)
通常,输出为Hens 30.0
,但在Windows计算机上运行时,输出为('Hens', 30)
。为什么会这样?
为清楚起见,我的代码是:
print("I will now count my chickens:")
print("Hens", 25 + 30 / 6)
print("Roosters", 100 - 25 * 3 % 4)
print("Now I will count the eggs:")
print(3 + 2 + 1 - 5 + 4 % 2 - 1/ 4 + 6)
print("Is it true that 3 + 2 < 5 - 7?")
print(3 + 2 < 5 - 7)
print("What is 3 + 2?", 3 + 2)
print("What is 5 - 7?", 5 - 7)
print("Oh, that's why it's False.")
print("How about some more.")
print("Is it greater?", 5 > -2)
print("Is it greater or equal?", 5 >= -2)
print("Is it less or equal?", 5 <= -2)
,输出为
$ python ex2.py
I will now count my chickens:
('Hens', 30)
('Roosters', 97)
Now I will count the eggs:
7
Is it true that 3 + 2 < 5 - 7?
False
('What is 3 + 2?', 5)
('What is 5 - 7?', -2)
Oh, that's why it's False.
How about some more.
('Is it greater?', True)
('Is it greater or equal?', True)
('Is it less or equal?', False)
Python版本:
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)] on win32
问题是()
,任何人都可以指导我。
谢谢
答案 0 :(得分:4)
在Python3中,Python2的print
语句已更改为功能:print(...)
。因此,Python2将此Python3语句解释为使用元组调用print
语句。
$ python2 -c 'print(1, 2, 3)'
(1, 2, 3)
$ python3 -c 'print(1, 2, 3)'
1 2 3
相关文档:https://docs.python.org/3/whatsnew/3.0.html#print-is-a-function。
答案 1 :(得分:1)
区别在于Python版本。 如果您使用的是Python 2.XX,则在调用print函数时不需要括号。但是在Python 3.XX中,必须在方括号中使用print()。
如果您想解决问题,则应更改Python版本或仅从print函数中删除每个括号,如下所示:
print("I will now count my chickens:")
print "Hens", 25 + 30 / 6
print "Roosters", 100 - 25 * 3 % 4
print("Now I will count the eggs:")
print 3 + 2 + 1 - 5 + 4 % 2 - 1/ 4 + 6
print("Is it true that 3 + 2 < 5 - 7?")
print 3 + 2 < 5 - 7
print "What is 3 + 2?", 3 + 2
print "What is 5 - 7?", 5 - 7
print("Oh, that's why it's False.")
print("How about some more.")
print "Is it greater?", 5 > -2
print "Is it greater or equal?", 5 >= -2
print "Is it less or equal?", 5 <= -2
答案 2 :(得分:1)
正如其他人所确定的那样,您在Python 2中的print
调用将调用一个语句,而在Python 3中,它们将调用一个函数。在Python 3中,必须加上方括号,而在Python 2中,方括号表示一个元组。
在Python 2.6+中,您可以通过从__future__
包中导入打印功能来引入Python 3中打印功能的新行为:
from __future__ import print_function
这提供了Python 3行为,并允许在Python 2和3解释器下以类似的行为执行打印语句。 (当然,其他Python 2特定的构造可能需要单独处理。)