我是python的新手,我遇到了getch.getch命令的问题。我正在创建一个程序,它将打印用户输入的二进制numpy数组 - 无需输入。为此,我创建了一个零数组和一个字母列表,其坐标应转换为1,例如:a =([x1,x2,x3],[y1,y2,y3])。我使用简单的input()命令使程序正常工作。但是当我切换到getch.getch时,它会提示以下索引错误:"只有整数,切片器......"我的程序无法将getch输入识别为已定义的变量吗?我该怎么做才能解决这个问题?谢谢!
答案 0 :(得分:1)
我猜你的代码看起来像这样:
a = (4,8,15)
b = (16,23,42)
c = (99, 100, 101)
value = input("choose a value:")
print value
结果通常如下:
choose a value:b
(16, 23, 42)
现在您要使用getch
代替input
。我是在正确的轨道上吗?
getch
和input
的工作方式完全不同。 input
获取用户的输入,将其评估为表达式,并返回结果。 getch
仅返回用户键入的字符。这就是input
为您提供(4,8,15)
而getch
为您提供"a"
的原因。
不是将每个值存储为单独的变量,而是使用旧的变量名作为键将所有值存储在单个dict中。然后,如果您知道其名称,则可以访问该值。
d = {
"a": (4,8,15),
"b": (16,23,42),
"c": (99, 100, 101)
}
key = getch()
print d[key]