Может ли кто-нибудь подтвердить, что это не работает:

input_1 = input('1st input:')
input_2 = input('2nd input:')
input_3 = input('3rd input:')

Если я выполню указанное выше с консоли Python, я получаю

>>> input_1 = input('1st input:')
1st input:input_2 = input('2nd input:')
>>> input_3 = input('3rd input:')This is supposed to be my third input
  File "<stdin>", line 1
    input_3 = input('3rd input:')This is supposed to be my third input
                                 ^
SyntaxError: invalid syntax

Итак, есть четыре проблемы:

  1. 2-й вход выполняется немедленно, не дожидаясь 1-го входа
  2. Вызов функции для 2-го входа каким-то образом возвращается как 1-й вход
  3. Третий ввод ожидает моего ввода (я набрал «Это должен быть мой третий ввод»), но не возвращает его должным образом.
  4. Несмотря на то, что первые два входа испорчены, только третий вход вызывает исключение.

Что здесь не так?

-1
borisbundschuh 14 Июн 2021 в 21:53

2 ответа

Лучший ответ

Python немедленно выполняет каждую строку кода, которую вы вставляете в REPL, поэтому сразу после того, как вы запустили input_1 = input('1st input:') Python начал читать введенный вами текст в качестве ввода для этой команды, обратите внимание, что во второй строке вашего терминала нет ">> > ", но есть подсказка для ввода.

Если бы вы поместили свой код в файл и запустили его, вы бы получили желаемое поведение.

0
Adin Ackerman 14 Июн 2021 в 19:03

Нет ошибок с PyCharm и Python 3.8.2

введите описание изображения здесь

0
Brad Malcom 14 Июн 2021 в 19:12