Скрипт работает в оболочке, но не как файл IDLE - PullRequest
0 голосов
/ 15 марта 2019

Когда следующий код выполняется строка за строкой на оболочке, он дает ожидаемый результат:

>>> 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

Код не выполняется в целом как файл, а выполняется строка за строкой в ​​оболочке. Код:

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

Почему это происходит?

Ответы [ 2 ]

2 голосов
/ 15 марта 2019

причина, по которой это происходит, в том, что ваша версия на Python ... ваш IDLE равен python 3.X, а ваш файл "переводится" (интерпретирует) с использованием python 2.X ... поэтому есть 2 простых решения:

1 / придерживайтесь python 3.X - ваш код не изменится, просто измените интерпретатор

2 / отредактируйте его так, чтобы он был совместим с python 2.X:

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

Вот два онлайн-компилятора, в которых вы можете увидеть разницу:

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

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

0 голосов
/ 15 марта 2019

@ Код брата Бабу кажется мне понятным, но вы можете кое-что забыть. Если у человека есть отчество, это вызовет ошибку. У вас есть 2 местоположения массива, когда пользователь вводит более 2 слов, это приводит к неожиданному концу файла из-за нехватки места, как например, футболист Кевин Принс Боатенг. Вы можете посмотреть это https://docs.python.org/2/c-api/memory.html для динамического управления памятью

...