【问题标题】:Script works in shell but not as IDLE file脚本在 shell 中工作,但不能作为 IDLE 文件
【发布时间】:2019-08-06 06:59:08
【问题描述】:

当下面的代码在 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 3.7.2),没有错误。您如何运行文件ReverseName.py
  • 好吧,我可能遗漏了一些东西,但它在我这边无法重现,你如何启动它?
  • unexpected EOF while parsing 表示存在未正确引用的字符串。您不会错过input() 行上的" 吗?
  • @adrianus 我将程序作为 $python ReverseName.py 运行并得到了错误。这次我尝试了 $python3 Reversename.py 一切都很顺利。

标签: python shell command-line eof


【解决方案1】:

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

【讨论】:

  • 我的代码接受 4 个单词并按预期输出。 $请给出你的全名:abc pqr xyz lmn>> lmn xyz xyz abc
  • name=input("请给出您的全名:") ListName=name.split(' ') outputString=ListName[3]+' '+ListName[2]+' '+ListName[ 2]+' '+ListName[0] print(outputString) @A.Toraman
【解决方案2】:

发生这种情况的原因是您的 python 版本...您的 IDLE 是 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

【讨论】:

  • Python 无法编译
  • 我知道......我只是不知道如何写它......这就是为什么我把它放在“”
  • 我认为interpreted 很好:)
  • @StyleZ pease 告诉我如何将我的解释器更新为 3.x,就像 shell 一样。
  • 删除 python 2.7 stackoverflow.com/questions/28723607/…> 然后正常安装 python 3.7 realpython.com/installing-python> 或者你可以这样做:stackoverflow.com/questions/20786478/…>
猜你喜欢
  • 1970-01-01
  • 2012-01-09
  • 2013-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 2012-03-20
  • 1970-01-01
相关资源
最近更新 更多