[英]Why is KeyboardInterrupt not outputting an if-else loop?
所以我有這個我想做的小游戲的代碼,但是帶有鍵盤中斷的 output 不起作用。 我是 python 的菜鳥,所以我願意接受任何修復我的代碼的建議。
代碼:
"""
GAME
number 1-20 rapidly listing
if press Ctrl+C on 10, then win
if not, then lose and restart
"""
import time
print("Type Ctrl+C to stop")
print("If you land on 10, you win!")
time.sleep(2)
i_dict = {1: 14, 2: 13, 4: 11}
dict_num = 0
while True:
try:
for i in range(1, 21):
print(i)
time.sleep(0.07)
except KeyboardInterrupt:
i_dict[dict_num + 1] = i
if i == 10:
print("You Win! Nice Job!")
else:
print(f"You landed on {i}!")
scores = input("Would you like to see your past scores?").lower()
if scores == 'yes':
for num, score in i_dict.items():
print(f"{num}: {score}")
restart = input("Would you like to try again? Answer with Yes or No: ").lower()
if restart == 'yes':
break
Output 當我按 Cntrl+C 時:
----------FINISHED----------
exit code: 2 status: 0
因此,我沒有使用鍵盤中斷作為導入,而是將其切換為使用鍵盤模塊,如果您還沒有安裝它,請通過執行pip install keyboard
或pip3 install keyboard
如果您正在運行 linux 您可能必須運行 Z23EEEB4347BDD26BDDFC6B755 ,如果您不在 linux 上,請不要擔心。 這是稍微改進的代碼。 快樂編碼!
import keyboard
import time
print('Hit "F" to stop. ')
print("If you land on 10, you win!")
time.sleep(2)
print("Start!")
i_dict = {1: 14, 2: 13, 4: 11}
dict_num = 0
i = 0
while True:
if i != 21:
print(i)
time.sleep(0.07)
i += 1
if keyboard.is_pressed("f"):
i_dict[dict_num + 1] = i
if i == 10:
print("You Win! Nice Job!")
if i != 10:
print(f"You landed on {i}!")
i = 0
restart = input("Would you like to try again? Answer with Yes or No: ")
if restart.lower() == 'yes':
i = 0
elif restart.lower() == 'no':
print("Thanks for playing")
exit()
if i >= 21:
i = 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.