#vim
#vim
Вопрос:
Я пытаюсь добавить входные данные в свой код Python
isAge = input("Enter your age: ")
и это показывает мне следующую ошибку:
enter your age: Traceback (most recent call last):
File "test2.py", line 3, in <module>
isAge = input("enter your age: ")
EOFError: EOF when reading a line
Я использую «w !python» для запуска кода.
Я попробовал w !python 18″, где 18 — возрастное число, но это не сработало
Ответ №1:
Если вы используете :w !python
из Vim, он запустит интерпретатор Python и передаст скрипт интерпретатору, что означает, что стандартный ввод интерпретатора Python будет подключен к этому каналу, через который Vim отправит ему скрипт, а не на консоль.
Таким образом, функции Python, такие как input()
, не будут работать для чтения ввода от пользователя, поскольку интерпретатор не имеет стандартного ввода, подключенного к консоли.
Чтобы решить эту проблему, вместо того, чтобы передавать Vim скрипт в интерпретатор Python, попросите его вызвать интерпретатор Python со сценарием в качестве аргумента. Поэтому вместо :w !python
используйте:
:w
:!python %
Предполагается, что вы редактируете файл, а не безымянный буфер. Если у вас есть безымянный буфер, сначала сохраните его в *.py
.
Комментарии:
1. Ах, теперь я, наконец, понимаю это. Большое вам спасибо!
2. Я искал способ протестировать небольшие изменения без перезаписи файла. но я думаю, что единственный практический ответ на данный момент — создать рабочую копию.