Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mac的python输入问题_Python_Macos - Fatal编程技术网

mac的python输入问题

mac的python输入问题,python,macos,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

我是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
Johnathans-iMac:脚本Johnathans$python-input.py
输入你的名字:约翰
回溯(最近一次呼叫最后一次):
文件“input.py”,第1行,在
person=input('输入您的姓名:')
文件“”,第1行,在
NameError:未定义名称“John”

请记住我是新来的。。可能是什么?

您正在Python 2解释器上运行Python 3代码。使用
brew安装python3
升级您的python,或者对Python2使用
raw\u input


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

我认为您使用的是Python2.7。原因是在这个版本的Python中,
input
函数要求用户输入一个字符串,然后尝试对该字符串求值。由于您的代码中没有定义
John
,Python会抱怨

尝试运行
python3
,或者改为使用
raw\u input
而不是
input

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

对于Python 2:

> person = raw_input('Enter name:')
Enter name:John
> print 'Hey', person
Hey John
将代码更改为

person = raw_input('Enter your name: ')
print 'Hello', person
在Python2中,需要使用
raw\u input
从命令行获取用户输入。在Python2中,
print
是一条语句。在参数周围放上括号将导致创建一个
元组
,并将其传递给
print
语句

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.

" 输入([提示]) 相当于eval(原始输入(提示))

此函数不捕获用户错误。如果输入在语法上无效,将引发语法错误。如果在求值过程中出现错误,则可能引发其他异常

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

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

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

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


因为你对自己的错误感到愤怒而否决一个正确的答案是违反规则的,令人遗憾的是,在过去的几个月里,这个网站已经变得如此恶性和不正确。

谢谢,我用原始输入使它工作得更好,但输出仍然不起作用“输入你的名字:john('Hi','john'))约翰·内森·伊玛克:脚本约翰·内森·伊玛克$'它怎么不起作用?尝试放置print('Hello'+''+person),否则,Hello和person之间将不会有空格。用新的输出问题更新您的问题,而不是附加注释。对于输出,我得到“('Hi','john'),就像我说的,用当前输出更新您的原始问题,以便以正确的格式阅读!!@受链接影响:
input([prompt]):相当于eval(原始输入(prompt))
,这就是我在回答中试图解释的。从来没有说过输入只适用于python 3。而且
raw\u input
并不被认为更糟糕。事实上,
input
的python 3版本是python 2所称的
raw\u input
。你被否决了,因为这无法解决OPs问题。这将引发
命名错误r
在Python 2中,OP显然正在使用它。在Python 2中,当使用
input()
读取字符串时,需要使用引号输入字符串,这与
raw\u input()
和Python 3的
input()
不同,您可以使用Python 2的
input()随心所欲地键入字符串
由于代码注入的原因也被认为是不好的,因此您的“旧问题”不再存在“这个说法是错误的,事实并非如此,但没关系,菲利佩。这不是这个问题的重复;该问题特别涉及使用
输入时对用户输入的意外评估@John正在使用
原始输入
input() # Is NOT a python 3 dependant function as clearly stated in the docs.