在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
为什么会这样?
答案 0 :(得分:2)
发生这种情况的原因是您的python版本...使用python 3.X
对文件进行“翻译”(Interpret)时,您的IDLE为python 2.X
...因此有2个简单的解决方案:
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 :(得分:-1)
@Babu兄弟代码对我来说似乎不错,但您可能会忘记一点。如果人的名字叫中间名,将导致错误。当用户键入两个以上的单词时,您将有2个数组位置,由于缺少位置(如足球运动员Kevin Prince Boateng)而导致文件意外结束。您可能需要查看此https://docs.python.org/2/c-api/memory.html来进行动态内存管理