У меня быстрый вопрос, для которого я до сих пор не нашел решения.Я работаю над небольшим приложением, использующим Pygame, для которого мне нужно определить, находится ли нажатая пользователем клавиша на клавиатуре между определенным диапазоном, например, только между A и F.Для этого я использую регулярное выражение, и оно прекрасно работает, если пользователь нажимает букву или цифру.Все, что находится за пределами регулярного выражения, игнорируется.Моя проблема заключается в том, что когда пользователь нажимает не буквенно-цифровую клавишу, например пробел, escape, стрелки, поскольку, хотя они не находятся в моем диапазоне, они принимаются регулярным выражением.
Вот пример:
import pygame, re
from pygame.locals import *
pygame.init()
size = width, height = 800, 480
screen = pygame.display.set_mode(size)
AppExit = False
while not AppExit:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
# check if pressed key is between A and F
keypressed = pygame.key.name(event.key)
isValidLetter = re.search('[a-f]', keypressed)
if isValidLetter is not None:
print(keypressed + " is between A and F")
pygame.display.update()
pygame.quit()
quit()
Если вы запустите этот код и, например, нажмете клавишу Escape, в консоли появится сообщение «ESCAPE находится между A и F».
Я не могу найти, как исключитьэти ключи: (
Есть идеи?
Большое спасибо!