我正在编写一个非常简单的tic-tac-toe程序来自学Python。我刚刚开始学习使用命令行,当我在IDLE中运行代码或使用Mac终端时,我注意到了print语句的一些不同行为。我正在使用Python 3.4。
屏幕截图输出来自此功能:
def print_board(board):
for row in board:
row = " ".join(row)
print(row)
print()
最后的print语句用于创建一个空行。当代码在IDLE中运行时,它按预期工作(参见屏幕截图的左侧),但在Mac终端中运行时,它会打印函数调用中的括号。
任何人都可以向我解释为什么会这样吗?
答案 0 :(得分:2)
那是因为在python 2中print
不是函数,而是声明。
所以写作
print()
实际上是
print ()
这意味着:打印一个空元组。
因此,您的终端显然使用python 2.您可以尝试使用python3
运行脚本。您的IDE使用python3,其中print
是一个函数,print()
表示:什么都不打印
答案 1 :(得分:2)
Mac终端中的默认python版本为python2.x,不会将打印作为一项功能。因此,它打印参数,一个空元组()
,out。
<强> python-2.x 强>:
>>> import sys;sys.version
'2.7.6 (v2.7.6:3a1db0d2747e, Nov 10 2013, 00:42:54) \n[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]'
>>> print()
()
>>>
<强> python-3.x 强>:
>>> import sys;sys.version
'3.4.0b2 (v3.4.0b2:ba32913eb13e, Jan 5 2014, 11:02:52) \n[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]'
>>> print()
>>>