提问人:Vikranth Inti 提问时间:3/15/2019 更新时间:3/15/2019 访问量:559
脚本在 shell 中工作,但不能作为 IDLE 文件
Script works in shell but not as IDLE file
问:
当以下代码在 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
为什么会这样?
答:
-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.X
python 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/...>
评论
ReverseName.py
unexpected EOF while parsing
表示有一个字符串没有正确引用。你没有错过一行吗?"
input()