Python:Getch()未被识别为已定义的变量

时间:2014-11-17 17:13:50

标签: python getch

我是python的新手,我遇到了getch.getch命令的问题。我正在创建一个程序,它将打印用户输入的二进制numpy数组 - 无需输入。为此,我创建了一个零数组和一个字母列表,其坐标应转换为1,例如:a =([x1,x2,x3],[y1,y2,y3])。我使用简单的input()命令使程序正常工作。但是当我切换到getch.getch时,它会提示以下索引错误:"只有整数,切片器......"我的程序无法将getch输入识别为已定义的变量吗?我该怎么做才能解决这个问题?谢谢!

1 个答案:

答案 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。我是在正确的轨道上吗?

在Python 2.7中,getchinput的工作方式完全不同。 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]