Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Разный результат выполнения программы в IDLE 3.9.2 и консоли. Что у меня не так?

В IDLE 3.9.2 пишу следующий код:

import msvcrt
import sys

while True:
    if msvcrt.kbhit():
        key = msvcrt.getch()
        if ord(key) == 27: sys.exit()
        print(ord(key))   

Сохраняемый в файле (с расширением .ру) скрипт работает так, как и задумывалось, при нажатии на клавишу отражается ее код, после нажатия Esc программа закрывается. Однако в IDLE программа просто выводит символы нажатых клавиш и завершает работу только по Ctrl + C.
PythonIdle
Александр Лычёв
Python Q
  · 10,3 K
Лучший
Исправляю старые баги, добавляю новые  · 23 мар 2021

Я детали реализации IDLE не знаю, но это связано с тем, что sys.exit завершает процесс.

В консоли вы запускаете новый python-процесс, в IDLE скорее всего не так, поэтому sys не корректно работает.

Для проверки этой гипотезы я выполнил запуски простого кода:

>>> import sys
>>> sys.exit()

В idle, командной строке виндовс и убунту.

В командных строках, ожидаемо, меня выбило из оболочки python. А в idle код был проигнорирован.

Ваш код коректно работает, на idle не обращайте внимание.

Спасибо за ответ! Экспериментируя дальше с IDLE и консолью, также обнаружил их разную "реакцию" на следующий... Читать дальше