mac的python输入问题

时间:2017-02-17 17:51:47

标签: python macos

我是python的新手并且一直在玩,但我在mac上遇到错误

下面是我在input.py文件中的代码

person = input('Enter your name: ')
print('Hello', person)

如果我运行代码,这是我的输出和错误

Johnathans-iMac:scripts johnathansmith$ python input.py 
Enter your name: John
Traceback (most recent call last):
  File "input.py", line 1, in <module>
    person = input('Enter your name: ')
  File "<string>", line 1, in <module>
NameError: name 'John' is not defined

请记住,我是新人..它可以是什么?

4 个答案:

答案 0 :(得分:2)

我认为您使用的是Python 2.7。原因是在这个版本的Python中,input函数要求用户输入一个字符串,然后尝试评估该字符串。由于代码中未定义John,因此Python抱怨。

尝试运行python3,或更改为使用raw_input代替input

使用Python 3(交互式会话输出):

> person = input('Enter name:')
Enter name:John

> print('Hey', person)
Hey John

使用Python 2:

> person = raw_input('Enter name:')
Enter name:John
> print 'Hey', person
Hey John

答案 1 :(得分:2)

将您的代码更改为

person = raw_input('Enter your name: ')
print 'Hello', person

在Python2中,您需要使用raw_input从命令行获取用户输入。在Python2中,print是一个语句。将括号括在参数周围会导致创建tuple并将其传递给print语句。

答案 2 :(得分:0)

您正在 Python 2 解释器上运行 Python 3 代码。使用homebrew brew install python3升级您的python或使用raw_input升级python 2

在Python 2中,raw_input()返回一个字符串,input()尝试将输入作为Python表达式运行。

答案 3 :(得分:-3)

person = input('Enter your name: ')
print('Hello' + ' ' + person)

Enter your name: Aaron
Hello Aaron

使用与op相同的操作系统,这就是我所做的,并作为输出接收。

input() # Is NOT a python 3 dependant function as clearly stated in the docs.

https://docs.python.org/2/library/functions.html#input

” 输入([提示]) 等效于eval(raw_input(prompt))。

此功能不会捕获用户错误。如果输入语法无效,则会引发SyntaxError。如果在评估过程中出现错误,可能会引发其他异常。

如果加载了readline模块,则input()将使用它来提供精细的行编辑和历史记录功能。

考虑将raw_input()函数用于来自用户的常规输入。 “

使用输入既不合适也不合适,事实上,使用raw_input()的建议通常更好,来自不再存在的旧问题,并且在这种特定情况下不会影响Op。

此外,存在的任何语法错误都会在同一级别上发生,而在使用raw_input时,在这种情况下没有有效参数可以使用raw_input()而不是input()lol

因为你生气,因为你对自己犯了错误是违反规则的,所以对你说这个网站在过去几个月里变得多么恶劣和不正确感到遗憾。