Python Необычная ошибка с многострочным кодом в IDLE Shell

1

Я тестировал код на IDLE для Python, который некоторое время не использовал, и наткнулся на необычную ошибку.

Я пытался запустить этот простой код:

for i in range(10):
    print(i)
print('Done')

Напомню, что оболочка работает построчно, поэтому вот что я сделал первым:

>>> for i in range(10):
        print(i)
    print('Done')

Это привело к ошибке отступа, показанной на рисунке ниже:

Изображение 174551

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

>>> for i in range(10):
        print(i)
print('Done')

Но это дало странную синтаксическую ошибку:

Изображение 174551

Это довольно странно для меня, как работает IDLE.

Обратите внимание: я на самом деле тестирую гораздо более сложную программу и не хочу создавать небольшой файл Python для короткого теста. В конце концов, разве не используется оболочка IDLE для коротких тестов?

Почему многострочное кодирование вызывает эту проблему? Благодарю.

  • 0
    Трудно сказать много, не зная точно, что вы ввели (в том числе пробел), но IDLE необычайно причудлив. В любом случае, нет разумной причины вводить многострочный код непосредственно в оболочку IDLE. Все, что находится за парой строк, должно быть в окне кода (или в лучшей IDE).
  • 0
    @JohnColeman Я согласен, в следующий раз я пересмотрю использование IDLE, но если подумать, пример, который я использовал, состоит всего из трех строк. Окончательный вариант в этом случае не нужен, но полезен в моем «большом проекте». Что я могу делать не так?
Показать ещё 3 комментария
Теги:

1 ответ

1
Лучший ответ

Просто нажмите " return один или два раза после print(i), пока не получите приглашение >>> снова. Затем вы можете напечатать print('Done'). Что происходит в том, что питон ждет вас, чтобы сказать ему, что вы закончите работать в том, что for. И вы делаете это, нажав клавишу return.

(Однако вы увидите, что цикл for выполняется сразу же.)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню