Quiz/if und else

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
Arox
User
Beiträge: 9
Registriert: Montag 24. Oktober 2016, 14:31

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")
Zuletzt geändert von Anonymous am Sonntag 27. August 2017, 20:44, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Der "is"-operator testet auf Objekidentität. Das ist aber falsch in diesem Fall. Du brauchst den Vergleichsoperator ==
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

"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...
Antworten