如何使用Python检测是否按下了特定键?
在本文中,我们将学习如何检测用户是否按下了特定键。检测键对编码人员来说非常重要,因为程序的整个执行仅依赖于单个/模式按键。
在日常生活中,您可能会体验到,当您在输入 PIN 码后按下回车键时,可以接受或拒绝整个 ATM 交易。同样,您将在日常生活中看到许多活生生的例子。
整个模块分为 3 段,第 1 段处理简单整数,第 2 段字母数字字符,第 3 段我们将使用Python模块来检测密钥。
方法一:使用pynput。
在此方法中,我们将使用 pynput Python模块来检测任何按键按下。 “pynput.keyboard”包含用于控制和监视键盘的类。它调用 pynput.keyboard.Listener。从任何地方停止,或从回调返回 False 以停止侦听器。该库允许您控制和监视输入设备。
方法:
- 从 pynput.keyboard 导入密钥、侦听器
- 创建 with 语句: with 语句用于用上下文管理器定义的方法包装块的执行。
- 定义函数
对于安装,将此代码运行到您的终端中。
pip install pynput
示例 1:在这里您将看到正在按下哪个键。
Python3
from pynput.keyboard import Key, Listener
def show(key):
print('\nYou Entered {0}'.format( key))
if key == Key.delete:
# Stop listener
return False
# Collect all event until released
with Listener(on_press = show) as listener:
listener.join()
Python3
from pynput.keyboard import Key, Listener
def show(key):
if key == Key.tab:
print("good")
if key != Key.tab:
print("try again")
# by pressing 'delete' button
# you can terminate the loop
if key == Key.delete:
return False
# Collect all event until released
with Listener(on_press = show) as listener:
listener.join()
Python3
for _ in range(3):
user_input = input(" Please enter your lucky word or type 'END' to terminate loop: ")
if user_input == "geek":
print("You are really a geek")
break
elif user_input == "END":
break
else:
print("Try Again")
输出:
示例 2:在这里您可以检测特定键是否被按下。
蟒蛇3
from pynput.keyboard import Key, Listener
def show(key):
if key == Key.tab:
print("good")
if key != Key.tab:
print("try again")
# by pressing 'delete' button
# you can terminate the loop
if key == Key.delete:
return False
# Collect all event until released
with Listener(on_press = show) as listener:
listener.join()
输出:
方法二:
这里我们从用户那里获取输入并检测用户输入了指定的字母数字(代表数字 0 – 9 的字符、字母 A – Z(大写和小写)以及一些常见的符号,例如 @#* 和&。) 或不。
方法:
- 接受用户输入
- 创建一个循环
- 使用条件
- 打印输出
代码:
蟒蛇3
for _ in range(3):
user_input = input(" Please enter your lucky word or type 'END' to terminate loop: ")
if user_input == "geek":
print("You are really a geek")
break
elif user_input == "END":
break
else:
print("Try Again")
输出: