Laienfrage: Mit Input Teile einer Liste abfragen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Rind23
User
Beiträge: 2
Registriert: Samstag 23. April 2022, 15:15

Hallo liebe Leute,

ich bin dabei, mir als Laie Python selbst anzueignen, und komme gerade an einer Stelle nicht weiter.

Ich möchte gerne per input-Befehl mehrere mögliche Antworten zulassen, will aber nicht jede einzelne Formulierung oder mögliche Rechtschreibfehler beachten müssen. Ist es möglich, dass nach der Eingabe des Nutzers, die z.B. "Hilfe, ich habe mein Kennwort vergessen" lautet, die Schleife beendet wird und ich weitermachen kann, obwohl der Satz in der abgefragten Liste selbst nicht genau so steht?

Oder hättet Ihr sonst einen Tipp, wie ich das machen könnte?

Code: Alles auswählen


begruessung = input('Willkommen. Was kann ich für Sie tun?')
anfrage1 = ''

moeglicheantworten1 = ['Passwort', 'Kennwort', 'Zugangsdaten', 'vergessen', 'verlegt']

while anfrage1 not in moeglicheantworten1:
    anfrage1 = input('''Leider kann ich nicht weiterhelfen.
Bitte geben Sie erneut eine Anfrage ein.''')
Danke schonmal!

Rind23
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Salopp gesagt: nein. Zwar gibt es fuzzy matching für strings, und andere Techniken des Sprachverstehens. Aber die sind weit jenseits des Laienniveaus. Vor allem aber ist der Ansatz, den du da fährst, sehr ungeschickt. Denn der Benutzer hat keine Ahnung, was dein Programm alles kann. Er muss also raten.

Stattdessen zeigt man eine Liste mit Möglichkeiten an, und einen einfachen Mechanismus wie zb eine Zahl oder einen Buchstaben zur Eingabe der konkreten Auswahl. Das löst beide Probleme auf einmal.
Rind23
User
Beiträge: 2
Registriert: Samstag 23. April 2022, 15:15

__deets__ hat geschrieben: Samstag 23. April 2022, 16:10 Salopp gesagt: nein. Zwar gibt es fuzzy matching für strings, und andere Techniken des Sprachverstehens. Aber die sind weit jenseits des Laienniveaus. Vor allem aber ist der Ansatz, den du da fährst, sehr ungeschickt. Denn der Benutzer hat keine Ahnung, was dein Programm alles kann. Er muss also raten.

Stattdessen zeigt man eine Liste mit Möglichkeiten an, und einen einfachen Mechanismus wie zb eine Zahl oder einen Buchstaben zur Eingabe der konkreten Auswahl. Das löst beide Probleme auf einmal.
An vorgegebene Antwortmöglichkeiten habe ich auch als Option gedacht, falls dieser Vorgang nicht so möglich ist, wie ich gern hätte. Die Aufforderung im input war in dem Fall nur ein Beispiel bzw. ich wollte diese Eingabemöglichkeit in einen größeren Kontext setzen, der dem Benutzer auf jeden Fall klarmacht, was gefordert ist.

Auf jeden Fall vielen Dank für die schnelle und präzise Antwort! :) Und ein schönes Wochenende noch!
Antworten