Ich habe diese Funktion, die ich mir als Python-Neuling ausgedacht habe und die eine „inputMap“ benötigt, ein zweidimensionales Array wie folgt:
Code: Select all
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
Dies wird in einer While-Schleife verwendet und in eine Match/Case-Anweisung eingespeist. Es erhält jedes Mal eine Eingabe vom Benutzer und gibt dann eine Ganzzahl zurück, die dem Match/Case mitteilt, welche Aktion jedes Mal ausgeführt werden soll. Ist dies ein guter Weg, dies zu erreichen, oder gibt es einen besseren Weg, dies zu tun (vielleicht mit Wörterbüchern)? Ich versuche, durch Üben gute Programmiergewohnheiten zu entwickeln, aber
ich möchte keine schlechten Techniken üben.