Вот мой код:
import random
def gen():
nums = list(range(10))
while nums:
num = random.choice(nums)
nums.remove(num)
print(f'Nums left: {len(nums)}.')
yield num
def main():
for num in gen():
print(num)
if input('Enter for next num or q to quit: ') == 'q':
print('Goodbye!')
break
else:
print('All out of nums.')
print('exited')
main()
Если я нажимаю клавишу ВВОДА вверх и вверх, чтобы получить следующую итерацию, она работает как положено. Но если я удерживаю клавишу Enter, программа заканчивается до того, как nums
станет пустым. Это не ошибка, и это не печатает "Все из чисел". или "вышел". Это просто заканчивается чем-то вроде:
Enter for next num or q to quit:
Nums left: 2.
4
Кто-нибудь знает, что происходит? Я на Windows с Python 3.8.
Это происходит только тогда, когда я в терминале VS Code с PowerShell. Если я запускаю его в терминале за пределами кода VS, он работает как положено. Он также работает, как ожидается, используя CMD в VS Code.