Lösung 1 [Mit einem Wörterbuch]
macht auch Dinge viel einfacher.
In diesem Fall speichern Sie die Variablen nicht für jede Zeichenfolge einzeln, sondern in einem Wörterbuch. So zum Beispiel, statt dies:
a = "Alpha"
b = "Bravo"
c = "Charlie"
Sie hätte dies:
letterwords = {"a":"Alpha", "b":"Bravo", "c":"Charlie"}
Das funktioniert sehr ähnlich wie eine Liste, aber statt Indizierung das Wörterbuch, das Sie separate Objekte innerhalb verweisen würde ein Wörterbuch gemäß seiner Schlüssel. Wenn also das Wörterbuch letterwords
wie oben definiert ist, würden Sie auf die Zeichenfolge Alpha
verweisen, indem Sie letterwords["a"]
aufrufen. Daher wird in diesem Fall würde der Code wie folgt aussehen:
letterwords = {"a":"Alpha", "b":"Bravo", "c":"Charlie"}
fn = input("Please enter your first name: ")
try:
letterwords[fn[0]]
except KeyError:
print("There is no matching variable with that letter in the database.")
Lösung 2 [Mit der Funktion eval()]
Nicht empfohlen.
Dies ist perfekt möglich, mit der Eval-Funktion. Sie sollten sich jedoch bewusst sein, dass dies eine ziemlich gefährliche Funktion ist, da böswillige Benutzer dies zur Steuerung der Konsole verwenden können. (Vor allem, wenn Sie os importiert.) Allerdings sollte es Sie über den Buckel für den Moment bringen. Hier ist der Code:
a = "Alpha"
b = "Bravo"
c = "Charlie"
fl = input("Please enter your first name: ")
try:
compared = eval(fl[0])
except NameError:
print("Your first name's first letter does not match any strings in the database.")
Mehr Informationen über die Funktion eval() hier: https://docs.python.org/3/library/functions.html#eval
Hope this geholfen!
Meinst du die Zeichenfolge mit dem Variablennamen zu vergleichen? – Jerrybibo
Genau @Jerrybibo – Gramms
Ich habe eine Antwort gepostet. @Gramms – Jerrybibo