Seite 1 von 1

Quiz/if und else

Verfasst: Sonntag 27. August 2017, 17:51
von Arox
Hallo.
Vorab müsst ihr wissen das ich ein kompletter neuling bin in sachen programmieren. Ich habe folgendes Problem: Ich will ein Quiz machen, wo der User eine Antwort eingibt, und dann entweder "richtig" oder "falsch" geprintet bekommt. Nun habe ich folgendes Script:

Code: Alles auswählen

def frage1():
    finput = input("Wie viele Bundesländer hat Deustchland? ")
    if finput is "16":
        print ("richtig")
    else:
        print ("Falsch")

frage1()
Nun ja, der Input funktioniert, sobald ich " 16 " eingebe, sagt er mir " falsch "
Was ich hier dran nicht verstehe ist, wenn Python den Code ließt, oder eher gesagt meine " 16 " dann sollte er mir doch eig. " richtig " sagen, weil - wenn input is 16, dann print richtig.
Ich verstehe dass es ein logischer Fehler ist, aber ich sehe nicht wo. Könnte es einer korrigieren und erklären? Wäre sehr dankbar, Danke :)
MfG print ("Arox")

Re: Quiz/if und else

Verfasst: Sonntag 27. August 2017, 18:03
von __deets__
Der "is"-operator testet auf Objekidentität. Das ist aber falsch in diesem Fall. Du brauchst den Vergleichsoperator ==

Re: Quiz/if und else

Verfasst: Sonntag 27. August 2017, 18:07
von nezzcarth
"is" ist hier der falsche Operator. Es muss "==" sein. Weiterhin würde man die Fragen und Antworten eigentlich nicht unmittelbar in den Quelltext schreiben, und für jede Frage separate "if"-Blöcke basteln, sondern die Mechanik abstrahieren, etwa in Funktionen, und die Fragen und Antworten in einer passenden Datenstruktur ablegen.

Edit: __deets__ war schneller...