Python显示额外的第一括号

时间:2018-09-02 10:14:18

标签: python python-2.7

我已经开始使用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

问题是(),任何人都可以指导我。

谢谢

3 个答案:

答案 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特定的构造可能需要单独处理。)