0

我正在处理以下代码:

def numberToName(number):
    if (number==3):
        return "Three"
    elif (number==2):
        return "Two"
    elif (number==1):
        return "One"
    else:
        return "Invalid"

print numberToName(2)
print numberToName(3)
print numberToName(1)
print numberToName(1)

此代码在以下在线 Python 环境中运行 100% 良好 - http://www.codeskulptor.org/#user11_Hh0KVUpNVP_0.py

但是当我使用IDLE它时,它会显示Invalid Syntax一行语法错误print numberToName(2)

我的 Python 版本是 3.3.1

我也注意到了一些问题。例如,在给定的 URL 中,我可以运行print "hello"并获取输出,但在 IDLE 中同样会生成错误,除非我键入print ("Hello").

这里有什么问题?我是 Python 新手。

(请注意,主要问题是关于给定的代码片段)。

4

4 回答 4

4

在线环境是 Python 2。您的 IDLE 安装是 Python 3。

有很多不同之处,在这种情况下,问题是print现在是一个函数。

另见: http: //python3porting.com/

于 2013-05-02T20:08:52.017 回答
3

这是因为 IDE 使用的是 Python 3.X,而不是在线环境中的 Python 2.X。

在 Python 2.X 中,您可以使用print("test")print "Text".

在 Python 3.x 中,您需要使用print("test").

这是因为在 Python 2.X 中 print 是一个关键字,而不是一个函数,而在Python 3 中它是一个函数

如果您将打印功能更改为此,它将在 Web 应用程序和您的 IDE 上运行。

print(numberToName(2))
print(numberToName(3))
print(numberToName(1))
print(numberToName(1))
于 2013-05-02T20:09:11.530 回答
3

您链接到的站点使用 python 2.6,因为他们声明

print在 python 3 中不再是语句,而是一个函数,这意味着它必须用括号来调用:print(...).

于 2013-05-02T20:10:18.580 回答
1

print 'word'和之间的区别print('word')是从 2.x 到 3.x 的重大变化之一。要修复它,只需将print其视为一个函数,它就会起作用。

于 2013-05-02T20:12:15.537 回答