Непонятный вывод программы python в терминале Windows
Я написал обычную программу на python. Вывод чисел от 0 до 50. Но работа программы в терминале Windows (Windows Terminal) была мне абсолютно непонятна.
Хотя в настройках есть "Командная строка" в качестве терминального приложения по умолчанию, при запуске .py из файлового менеджера (дважды щелкните по нему) программа открывается в терминале Windows, но не в "Командной строке", я не понимаю, что с этим делать.
При запуске программы через исполняемый файл .py я столкнулся с таким поведением:
На экране терминала отображались только числа от 21 до 41 и потом снова с 21 до 29, которые помещались в окно терминала, и 21 пустая строка перед ними.
А при изменении размера окна терминала со мной происходили еще более непонятные вещи.
Но когда я запускаю файл непосредственно из Командной Строки в терминале(Command Prompt), то все в порядке.
Операционная система - Windows 11. File .py запускается в Windows Terminal по умолчанию. Код на Python:
for i in range(50):
print(i)
Результат выполнения кода:
Терминал при изменении размера:
Пожалуйста, помогите мне разобраться в работе терминала Windows при открытии файла .py. И как это можно исправить, что с этим делать. Я заранее благодарен.
Приложение Терминала по умолчанию - “Командная строка”:
Но запускается не эта программа, а просто терминал Windows.
НО! Если я помещу input() в начало программы, то все будет работать нормально:
input()
for i in range(50):
print(i)
Можно ли как-то решить это без input()? И что именно происходит с input() вначале, что он меняет?
Вот ещё примеры выводов первой программы без input(). Слева - неработающая программа, запущенная через исполняемый файл, справа - программа, запущенная через командную строку: