Python在IDLE中运行但不是终端?

时间:2016-08-17 22:58:48

标签: python

看了一下后,我仍然没有得出结论为什么以下的python在IDLE中工作但不是终端。任何帮助将不胜感激。

print("Hello User!")

request_list = ['']

while True:
    greeting = input('')

    if greeting.lower() == "hello":
        print("Who is this?")
        print("Welcome back " + input() +", what can I do for you?")
        break

    elif greeting.lower() != "hello":
        print("Show some manners!")

错误

Traceback (most recent call last):
 File "courtney.py", line 23, in <module>
greeting = input('')
 File "<string>", line 1, in <module>
NameError: name 'hello' is not defined

2 个答案:

答案 0 :(得分:0)

你正在运行python3 IDLE,终端设置为python2。

在您计算机的环境变量中,您希望更改Python3安装位置的路径,而不是python 2。

看一下图片,你要改变的是PATH

Environmental Variables

如果您不想更改环境变量以便终端继续使用python2,那么您必须更改输入和打印语句。

下面的代码是python 2.7中代码的实现:

print "Hello User!" 

request_list = ['']

while True:
    greeting = raw_input("What is your name? ")

    if greeting.lower() == "hello":
        print "Who is this?"
        print "Welcome back " + greeting +", what can I do for you?"
        break

    elif greeting.lower() != "hello":
        print "Show some manners!"

答案 1 :(得分:0)

问题是您在终端中使用python 2.x.如果你已经安装了两个,你应该能够使用命令'python3'来运行代码而不是命令'python'。

在python 3中,'input'可以取整数或字符串。在python2中'输入'不能带字符串。只有其他东西。在python 2.x中你应该使用'raw_input'取一个字符串。