EOFError: EOF при чтении строки — в крестики-нолики — Python

во время тестов показывает сообщение об ошибке:


   Traceback (most recent call last):
     File "tictactoe/tictactoe.py", line 10, in <module>
       coordinates = input("Enter the coordinates: ")
   EOFError: EOF when reading a line

Я не могу представить, что вызывает эту проблему. Код:

c = True
while c:
  coordinates = input("Enter the coordinates: ")  # <-- line 10 is this one
  if coordinates == '':
    print("Coordinates should be from 1 to 3!")
    continue
  elif len(coordinates) < 3 or len(coordinates) > 3:
    print("Coordinates should be from 1 to 3!")
    continue

Спасибо за поддержку


person crash1    schedule 15.01.2020    source источник
comment
Единственный способ воспроизвести это — передать EOF (CTRL + D) в input. Это то, что вы отправляете на стандартный ввод, что вызывает это?   -  person C.Nivs    schedule 15.01.2020
comment
Добро пожаловать в переполнение стека! К сожалению, я не могу воспроизвести ошибку на основе предоставленного кода. Цикл выполняется без ошибок. Есть ли еще код, который вы не включили, или ваш код в вашем вопросе немного отличается от кода в сценарии?   -  person G. Anderson    schedule 15.01.2020
comment
Сообщение об ошибке из автоматического теста, о котором, к сожалению, мне ничего не известно. Есть ли способ решить CTRL+D?   -  person crash1    schedule 15.01.2020
comment
Не зная, что делает тест, решить эту проблему будет довольно сложно. Предназначен ли тест для отправки данных в программу? Есть ли какие-либо подробности, связанные с тестом?   -  person C.Nivs    schedule 15.01.2020
comment
Пользователь должен ввести 2 числа (координаты), чтобы играть в игру. Остальная часть кода связана с интерпретацией и рисованием игрового поля.   -  person crash1    schedule 15.01.2020
comment
Как пишется тест? Это реальный вопрос.   -  person Iguananaut    schedule 15.01.2020
comment
Можно ли в операторе if учитывать CTRL+D и продолжать предлагать игроку вводить числа?   -  person crash1    schedule 15.01.2020
comment
к сожалению, тест не доступен для просмотра.   -  person crash1    schedule 15.01.2020
comment
Нам нужно знать, доступно ли хотя бы stdin тому, что выполняет тест.   -  person C.Nivs    schedule 15.01.2020
comment
Сейчас я голосую за закрытие, так как почти невозможно дать вам правильное решение без дополнительных деталей. Надеюсь, вы сможете узнать больше о тесте, который выполняется, если вы это сделаете, обновите этот вопрос, чтобы мы могли помочь вам решить вашу проблему.   -  person C.Nivs    schedule 15.01.2020


Ответы (1)


Ваш тест, вероятно, запускает код не в интерактивном режиме. Если вы создаете тест на Python, попробуйте использовать subprocess.PIPE, чтобы вы могли взаимодействовать с подпроцессом. Без действительного стандартного ввода программа выдаст эту ошибку, которая (должна) привести к сбою вашего теста.

person Hack5    schedule 15.01.2020