Выход из скрипта python на терминал после того, как скрипт был восстановлен
На этой неделе я изучал python, который начался с урока игры со змеями. Затем я добавил функции в игру, чтобы сделать ее потрясающей. Одна функция, которую я добавил, - это возможность перезапустить игру после смерти змеи. После смерти появляется экран, который предлагает пользователю нажать y или n, чтобы перезапустить игру. Нажатие y всегда перезапускает игру, что меня очень порадовало. Нажатие n завершает работу сценария обратно в терминал, но только в том случае, если в игру играют только один раз. Если в игру играют дважды, то выбирается n, экран становится черным, и все не отвечает. После смерти змеи вызывается функция. Есть и другие кусочки, но я считаю, что именно здесь возникает проблема:
while True:
for evt in pygame.event.get():
if evt.key == ord('y')
restart = "y"
break
elif evt.key == ord('n'):
restart = "noty"
break
if restart == 'y'
os.execl(sys.executable, sys.executable, × sys.argv)
else:
pygame.quit()
sys.exit()
os.exit()
заранее спасибо
1 ответ
Вы можете просто выйти из цикла.
while True:
for evt in pygame.event.get():
if evt.key == ord('y')
restart = "y"
break
elif evt.key == ord('n'):
pygame.quit() # just quit here
sys.exit()
if restart == 'y':
os.execl(sys.executable, sys.executable,sys.argv)
Там же нет os.exit()
это os._exit()
который я не думаю, будет казнен после sys.exit()
Из документов:
Примечание Стандартный способ выхода sys.exit(n). _exit()
обычно должен использоваться только в дочернем процессе после fork().