数字键的upper()情况

时间:2016-11-17 13:41:24

标签: python pygame

我正在尝试在PyGame中实现一个输入框。我已经达到了一个点,我可以用大写和小写字母输入文本(SHIFT改为大写,像往常一样)。我通过检查L_SHIFT / R_SHIFT是否被按下来执行此操作,如果是,则使用类似time > TIME(NOW())的内容将与按下的键对应的char转换为相应的上部char。这适用于字母(char = char.upper())。但是,它不适用于数字和其他特殊符号,例如a-z -> A-Z1 -> !2 -> ". -> :(德语键盘布局)。

在Python中有更好的方法可以将字符转换为相应的SHIFT +键字符吗?

1 个答案:

答案 0 :(得分:1)

键盘上没有从数字到与其相关联的标点符号的固有映射,因此您必须自己指定它们。我会使用地图,如下:

number_map = {
  '1':'!',
  '2':'@',
  '3':'#',
  #etc
  #etc
}

print(number_map['1']) # will print !

这很好,因为你也可以将它用于任何其他非字母键。