我正在尝试在PyGame中实现一个输入框。我已经达到了一个点,我可以用大写和小写字母输入文本(SHIFT改为大写,像往常一样)。我通过检查L_SHIFT / R_SHIFT是否被按下来执行此操作,如果是,则使用类似time > TIME(NOW())
的内容将与按下的键对应的char转换为相应的上部char。这适用于字母(char = char.upper()
)。但是,它不适用于数字和其他特殊符号,例如a-z -> A-Z
,1 -> !
,2 -> "
或. -> :
(德语键盘布局)。
在Python中有更好的方法可以将字符转换为相应的SHIFT +键字符吗?
答案 0 :(得分:1)
键盘上没有从数字到与其相关联的标点符号的固有映射,因此您必须自己指定它们。我会使用地图,如下:
number_map = {
'1':'!',
'2':'@',
'3':'#',
#etc
#etc
}
print(number_map['1']) # will print !
这很好,因为你也可以将它用于任何其他非字母键。