脚本在 shell 中工作,但不能作为 IDLE 文件

Script works in shell but not as IDLE file

提问人:Vikranth Inti 提问时间:3/15/2019 更新时间:3/15/2019 访问量:559

问:

当以下代码在 shell 上逐行执行时,它会给出预期的输出:

>>> name=input("Please give your full name : ")
Please give your full name : ins vikranth
>>> ListName=name.split(' ')
>>> outputString=ListName[1]+' '+ListName[0]
>>> print(outputString)
vikranth ins

代码不是完全作为文件运行,而是在 shell 上逐行运行。 代码是:

name=input("Please give your full name : ")
ListName=name.split(' ')
outputString=ListName[1]+' '+ListName[0]
print(outputString)

错误消息是:

Please give your full name : ins vikranth
Traceback (most recent call last):
  File "ReverseName.py", line 1, in <module>
    name=input("Please give your full name
  File "<string>", line 1
    ins vikranth
               ^
SyntaxError: unexpected EOF while parsing

为什么会这样?

Python Shell 命令行 EOF

评论

2赞 adrianus 3/15/2019
您的代码对我有用(Python 3.7.2),没有错误。你是如何运行文件的?ReverseName.py
0赞 BlueSheepToken 3/15/2019
好吧,我可能遗漏了一些东西,但它在我这边是不可复制的,你如何启动它?
0赞 3/15/2019
unexpected EOF while parsing表示有一个字符串没有正确引用。你没有错过一行吗?"input()
0赞 Vikranth Inti 3/15/2019
@adrianus我按$python ReverseName.py 运行程序并出现错误。这次我尝试了 $python 3 Reversename.py,一切顺利。

答:

-1赞 A.Toraman 3/15/2019 #1

@Babu兄弟代码似乎对我来说很不错,但你可能会忘记某些观点。如果人有中间名,则会导致错误。您有 2 个数组位置,当用户键入超过 2 个单词时,由于缺少位置,它会导致文件意外结束,例如足球运动员凯文·普林斯·博阿滕。您可能希望查看此 https://docs.python.org/2/c-api/memory.html 以进行动态内存管理

评论

0赞 Vikranth Inti 3/15/2019
我的代码接受 4 个单词并按预期给出输出。$Please 提供您的全名 : ABC PQR xyz LMN>> LMN xyz xyz abc
0赞 Vikranth Inti 3/15/2019
name=input(“请提供您的全名:”) ListName=name.split(' ') outputString=ListName[3]+' '+ListName[2]+' '+ListName[2]+' '+ListName[0] print(outputString) @A.托拉曼
2赞 StyleZ 3/15/2019 #2

发生这种情况的原因是您的 Python 版本......您的 IDLE 是在您的文件被“翻译”(解释)时使用...所以有 2 个简单的解决方案:python 3.Xpython 2.X

1/ 坚持 - 你的代码不会改变,只是改变解释器python 3.X

2/ 编辑它以兼容:python 2.X

name=raw_input("Please give your full name : ")

这里还有 2 个在线编译器,您可以在其中看到差异:

Python 3.7 -> https://www.onlinegdb.com/online_python_compiler

Python 2.7 -> https://repl.it/languages/python

评论

1赞 BlueSheepToken 3/15/2019
Python 不编译
0赞 StyleZ 3/15/2019
我知道。。。我只是不知道怎么写......这就是为什么我把它放在“ ”
1赞 BlueSheepToken 3/15/2019
我认为:)很好interpreted
0赞 Vikranth Inti 3/15/2019
@StyleZ请告诉我如何将我的解释器更新到 3.x,就像 shell 一样。
0赞 StyleZ 3/15/2019
删除 Python 2.7 <stackoverflow.com/questions/28723607/...>然后正常安装 python 3.7 <realpython.com/installing-python>或者您可以执行如下操作:<stackoverflow.com/questions/20786478/...>