Есть ли лучший способ сопоставить вводимые пользователем данные со списком возможных ответов, чем эта функция, которую яPython

Программы на Python
Ответить
Anonymous
 Есть ли лучший способ сопоставить вводимые пользователем данные со списком возможных ответов, чем эта функция, которую я

Сообщение Anonymous »

У меня есть функция, которую я придумал как нуб Python, которая принимает "inputMap", двумерный массив следующим образом:

Код: Выделить всё

exampleInputMap = [
['1', 'a', -1],  # do the first action
['2', 'b'],  # do the second action
['3', 'h'],  # print help
['4', 'q']  # quit the program
]

def mapInputToAction(inputMap, matchFirstCharOnly=True, prompt='> '):
while True:
response = input(prompt)
if len(response) == 0:
for index, row in enumerate(inputMap):
if -1 in row:
return index
else:
for index, row in enumerate(inputMap):
if matchFirstCharOnly:
if response[0] in row:
return index
else:
if response in row:
return index
Это используется в цикле while и передается в оператор match/case. Он каждый раз получает входные данные от пользователя, а затем возвращает целое число, которое сообщает совпадению/регистру, какое действие следует выполнять каждый раз. Это хороший способ сделать это или есть лучший способ сделать это (возможно, с помощью словарей)? Я пытаюсь выработать хорошие привычки программирования, практикуясь, но не хочу практиковать плохие методы.


Подробнее здесь: https://stackoverflow.com/questions/798 ... s-than-thi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»