Ist das überhaupt möglich?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Die Idee von einem Dictionary ist ja, dass du einen Key und ein Value hast. Benutz das, was du in den if abfragst, als Key und die Antwort als Value.

Also z.B.

dict = {
  "wie geht es dir": "Mir geht es gut und dir?"
}

if input_user in dict:
  print(dict[input_user])

Wobei ich zugeben muss, dass ich mir nicht sicher bin, ob ich deine Frage richtig verstanden habe.

Ja so funktioniert es momentan. Aber ich möchte es genau umgekehrt. Es soll geguckt werden, ob der Key in der Eingabe drin ist oder nicht.

0
@YannisFarin

Mit

list_of_keys = list(dict.keys())

bekommt du eine Liste aller keys im dictionary zurück. Dann kannst du mit

for key in list_of_keys:
  if key in user_input:
    print(dict[input_user])

für jeden key überprüfen, ob dieser im input enthalten ist.

1
@PalBeron

Beim Run überhaupt nicht, aber da mein Dictionary aktuell ca. 30k Zeilen umfasst laggt es hammer hart beim coden, wenn ich rine weitere Zeile schreiben möchte und ich auf die Entertaste drücke. Dann dauert das erstmal 10 Sekunden🤣

0
@PalBeron

Funktioniert leider nicht. wenn ich den key 1 zu 1 eingebe, bekomme ich sowohl die Antwort, wie auch die else antwort. Wenn ich noch was dazu schreiben, dann bekomm ich eine Traceback Fehlermeldung

0
@PalBeron

Aber mir kommt da gerade ne Idee. Was ist, wenn ich die Keys des Dictionarys in eine Liste packe, checke, ob einer der keys irgendwo im Input drin ist, den Key wiedergeben lasse und dann die passende Antwort aus dem Dictionary rausgebe?

0
@YannisFarin

Ich vermute mal, du wolltest mich @ und dein Problem bezieht sich auf meine vorgeschlagene Lösung. In diesem Fall poste bitte mal deinen Code. Nach meiner Lösung bräuchtest du ja kein else.

1
@YannisFarin

Zu deiner Idee: Genau das macht ja list(dict.keys()) in Verbindung mit print(dict[user_input]).

1
@YannisFarin

Es sollte

print(dict[key])

statt

print(dict[input_user])

im for loop heißen.

1
@jaannippon

Das klappt!!! Oh man. Das Problem ist gelöst. verdammt. ich muss noch sehr viel lernen. Vielen Dank @jaannippon.❤ Und natürlich auch an alle anderen. Achjaaa, ja, nach deiner Lösung brauch ich tatsächlich kein else mehr.

0
@jaannippon

Mir ist sogar noch was sehr cooles aufgefallen. nutze ich 2 keys auf einmal, werden beide antworten ausgegeben. Das Ding ist, ich habe mir gerade einen kopf gemacht, ob man nicht in solch einem fall nicht beide antworten auffangen und zusammen ausgeben kann. aber das läuft auch gleich direkt🥰

1

Den Text würde ich nicht ins Programm meisseln, sondern ins Dictionary aus einer Textdatei einlesen und füllen. Damit kommt Python eher klar als mit 30000 Codezeilen. Ausserdem, wenn eine Methode oder Funktion mehr als 100 Zeilen hat ist das nicht gerade guter Programierstil.

Woher ich das weiß:Beruf – CEO Stellvertreter bei Microsoft

Naja, du kannst halt mit Hallo, Hallo wie geht es dir, etc., Guten Morgen, Guten abend und so weiter begrüßen

0

Ich bin zwar Java und C# Programmierer, aber prints brauchen extrem viel Leistung und Zeit. Wieviel wird bei dir geprintet?

Woher ich das weiß:Studium / Ausbildung – Aktuelle Ausbildung

Nur die Antworten. Wenn das Programm läuft, gibt es keine Zeitverzögerungen. Da kommt die Antwort instand. Aber beim coden und der Entertaste ist es einfach sau schlimm.

0

Was möchtest Du wissen?