mac 下的 python 输入问题[重复]

问题描述 投票:0回答:4

我是 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

请记住我是新人..这会是什么?

python macos
4个回答
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

2
投票

将您的代码更改为

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

在Python2中,需要使用

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


0
投票

您正在 Python 2 解释器上运行 Python 3 代码。使用 homebrew

brew install python3
升级你的 python 或使用
raw_input
for python 2

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


-3
投票
person = input('Enter your name: ')
print('Hello' + ' ' + person)

Enter your name: Aaron
Hello Aaron

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

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() 函数来处理用户的一般输入。 ”

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

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

因为你对自己的错误感到愤怒而对正确答案投否决票是违反规则的行为,令人遗憾的是这个网站在过去几个月里变得多么恶毒和不正确。

© www.soinside.com 2019 - 2024. All rights reserved.