2014-11-17 3 views
-1

Я новичок в python, и у меня возникают проблемы с командой getch.getch. Я создаю программу, которая будет печатать двоичный массив numpy, который вводит пользователь - без ввода ввода. Для этого я создал массив нулей и список букв с координатами, которые должны быть преобразованы в единицы, например: a = ([x1, x2, x3], [y1, y2, y3]). У меня была программа, работающая отлично с простой командой input(). Но когда я переключился на getch.getch, он вызвал следующую ошибку индекса: «только целые числа, slicers ...» Является ли моя программа неспособной распознать вход getch как определенную переменную? Что я могу сделать, чтобы исправить эту проблему? Благодаря!Python: Getch() не распознается как определенная переменная

+0

Какую версию Python вы используете? – Kevin

+1

Возможный дубликат [Как сделать переменные переменные в Python?] (Http://stackoverflow.com/questions/1373164/how-do-i-do-variable-variables-in-python) – Kevin

+0

Я использую 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])}. Вы видите ошибку? Еще раз спасибо. –

ответ

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, 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] 
Смежные вопросы