Brauche Hilfe bei Python?

3 Antworten

Bei einer Liste an Elementen kannst du dich nur auf ein Element in der Liste beziehen. Das bedeutet, dass dein „if Eingabe == Frage[x,y,z]“ nicht funktioniert, sondern dir nur ein „if Eingabe == Frage [x]“ etc. machen kannst. Sobald du dich auf mehrere Elemente beziehst, versuchst du einen Zugriff wie bei einem Tupel zu machen. Eine Liste ist aber KEIN Tupel.

Einfacher wäre hier:

“if Eingabe in Frage“ zu schreiben. Das „in“ ist letztendlich eine Art „For-Schleife“, die durch alle Elemente der Liste rotiert und schaut, ob „Eingabe“ in der Liste existiert.

Zusätzlich als Hinweis: Dein „str(input())“ ist nicht nötig, da „input()“ bereits einen Steing zurückliefert.

Du solltest dich als Anfänger definitiv erst einmal mit den Basics auseinandersetzen(!)

Dabei ist das Verständnis von Listen essenziell.

Die Antwort heißt auf gut deutsch: Listen Indexe (also das 0,1,2,3 in Frage[0,1,2,3]) muss ein Integer (Ganzzahl) sein und kein Tupel (Aufzählung).

Du kannst bei einem if mehrere Bedingungen machen mit && (UND) oder || (ODER). So könntest du if Eingabe == "?" || Eingabe == "Warum" || Eing.. benutzen

Woher ich das weiß:Studium / Ausbildung – Duales Studium Informatik seit Oktober 2021

skiddy  23.12.2023, 12:07

Für den Anfang wären zwar multiple If-Statements ok, aber das sollte man mMn lieber vermeiden und auf die in Python vorhandene Keywords wie „if x in y“ o.ä. setzen.

Glaube du verstehst den Fehler nicht lol

Du kannst nicht einfach eine Liste mit einem String vergleichen,

Versuch doch mal:

"For element in Frage:

If element == Eingabe:

Print...

"

Das ist jetzt pseudocode den ich am Handy geschrieben habe der geht so wahrscheinlich nicht aber vom Prinzip her müsste es stimmen

Woher ich das weiß:Hobby – Programmiere Privat

skiddy  23.12.2023, 12:11

Elemente einer Liste, die z.B. vom Typ „str“ sind, können sehr wohl mit einem String vergleichen werden. So kann z.B. folgendes funktionieren:

x = „abc“
y = [„abc“, „def“]
if x == y[0]:
  print(True)
else:
  print(False)

In dem Fall würde „True“ ausgegeben werden.

Swe4rX  23.12.2023, 13:32
@skiddy

Natürlich kann man mit Elementen aus einer Liste vergleichen, aber nicht mit einer Liste selber hä hab ich doch so geschrieben bruh