【问题标题】:Python: Getch() not Recognized as a Defined VariablePython:Getch() 未被识别为已定义变量
【发布时间】:2014-11-17 17:13:50
【问题描述】:

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

【问题讨论】:

  • 您使用的是哪个版本的 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 告诉你问题出在哪一行时,它会落后一个。通常是缺少右括号。

标签: python getch


【解决方案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"

不要将每个值存储为单独的变量,而是将它们全部存储在一个字典中,使用它们的旧变量名称作为键。然后,如果您知道它的名称,就可以访问该值。

d = {
    "a": (4,8,15),
    "b": (16,23,42),
    "c": (99, 100, 101)
}
key = getch()
print d[key]

【讨论】:

    猜你喜欢
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 2013-08-05
    • 1970-01-01
    • 2019-04-29
    • 2012-12-07
    • 1970-01-01
    相关资源
    最近更新 更多