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()
等待任何输入。
如果不是h
或s
,则再次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()
我目前正在构建一个 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()
等待任何输入。
如果不是h
或s
,则再次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()