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

Python:Getch()未被识别为已定义变量,python,getch,Python,Getch,我是python新手,在使用getch.getch命令时遇到了问题。我正在创建一个程序,该程序将打印用户输入的二进制numpy数组,而无需按enter键。为此,我创建了一个零数组和一个字母列表,其中的坐标应转换为1,例如:a=([x1,x2,x3],[y1,y2,y3])。我用一个简单的input()命令使程序运行良好。但是,当我切换到getch.getch时,它提示了以下索引错误:“仅限整数、切片器…”我的程序是否无法将getch输入识别为已定义的变量?我能做些什么来解决这个问题?谢谢 我猜您

我是python新手,在使用getch.getch命令时遇到了问题。我正在创建一个程序,该程序将打印用户输入的二进制numpy数组,而无需按enter键。为此,我创建了一个零数组和一个字母列表,其中的坐标应转换为1,例如:a=([x1,x2,x3],[y1,y2,y3])。我用一个简单的input()命令使程序运行良好。但是,当我切换到getch.getch时,它提示了以下索引错误:“仅限整数、切片器…”我的程序是否无法将getch输入识别为已定义的变量?我能做些什么来解决这个问题?谢谢

我猜您的代码是这样的:

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)
结果通常是这样的:

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
。我走对了吗

在Python2.7中,
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]

您使用的是哪一版本的Python?可能与我使用的Python 2.7.8有重复。我遵循了你的答案(也复习了字典)——谢谢——但我收到了一个语法错误。我的字典看起来像:d={“a”:([2,5,8],[0,0,0]),“b”:([3,5,7],[0,2,4]),“c”:([1,2,3],[2,4,6])。你看到错误了吗?再次感谢。那本字典里没有语法错误。试着看那条线上面的那条线。有时,当Python告诉您问题所在的行时,它会逐个关闭。通常是缺少右括号。