Python 键盘模块,等待用户

Python Keyboard Module, wait for user

我目前正在构建一个 python 代码来玩二十一点,我需要能够在按键时调用某些功能,而不必在终端中。我发现这个键盘模块很有用,但我遇到了这个问题。

def hit_or_stand(deck,hand):
    global playing
    print ("\nWould you like to Hit or Stand? Enter 'h' or 's'")

    if keyboard.is_pressed('h'):
        hit(deck,hand)  

    if keyboard.is_pressed('s'):
        print("Player stands. Dealer is playing.")
        playing = False

让我解释一下这个函数的作用,因为我不想用整个代码让每个人都负担过重。本质上,这个函数在循环中被调用,直到玩家决定点击 s ,它声明播放为 False 并因此停止循环。如果玩家击中 h,则调用 hit 函数来抽一张牌。玩家可以抽多少张牌。

我现在的问题是这段代码不等待用户按键。它循环得非常快,重复它。我只希望它在按下 h 或 s 后循环。

我尝试在第一个 if 上方的行中使用 keyboard.wait('h'),但这不允许用户按 s 并因此声明播放为 False。

我正在寻找的是 keyboard.wait('h'or's') 的内容,但我知道这行不通。

感谢您的帮助。我正在使用 python 3.7.9

编辑:键盘模块我也指的是: https://pypi.org/project/keyboard/

使用keyboard.read_key()等待任何输入。

如果不是hs,则再次read_key

import keyboard

def mywait():
    keyboard.read_key()

def my_function():
    print("Hello")

def my_exit():
    quit()

keyboard.add_hotkey("p", my_function)
keyboard.add_hotkey("esc", my_exit)

while True:
    mywait()