简体   繁体   English

为什么 KeyboardInterrupt 不输出 if-else 循环?

[英]Why is KeyboardInterrupt not outputting an if-else loop?

So I have this code for a little game that I wanted to make, but the output with keyboardinterrupt isn't working.所以我有这个我想做的小游戏的代码,但是带有键盘中断的 output 不起作用。 I'm kind of a noob in python, so I'm open to any suggestions to fix up my code.我是 python 的菜鸟,所以我愿意接受任何修复我的代码的建议。

Code:代码:

"""
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 when I press Cntrl+C: Output 当我按 Cntrl+C 时:

----------FINISHED----------
exit code: 2 status: 0

So instead of using the keyboard interrupt as import I switched it to use the keyboard module, install it if you don't have it already by doing pip install keyboard or pip3 install keyboard if you are running linux you may have to run python as sudo, if you're not on linux don't worry about it.因此,我没有使用键盘中断作为导入,而是将其切换为使用键盘模块,如果您还没有安装它,请通过执行pip install keyboardpip3 install keyboard如果您正在运行 linux 您可能必须运行 Z23EEEB4347BDD26BDDFC6B755 ,如果您不在 linux 上,请不要担心。 Here's the somewhat improved code.这是稍微改进的代码。 Happy coding!快乐编码!

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM