If/else Problem

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
Benutzeravatar
andie39
User
Beiträge: 152
Registriert: Dienstag 7. Dezember 2021, 16:32

Hallo.

Ich versuche gerade selber ein Stein, Schere, Papier Spiel zu schreiben.
Ich weiß, gibt es hier schon und ist oft für Anfänger als Übung und Beispiel gezeigt.

Hatte ich auch gesehen, ich wollte es aber selber ohne abgucken aus meinem Kolf mit dem was ich bisher gelernt habe selber schreiben.
Und wenn es grundsätzlich funktioniert noch mit anderen Teilen verbessern.

Wie dem auch sei. Es klappt ganz gut außer an einer Stelle mit einer if/else Bedingung.

Ich habe den Bereich sogar in klein rausgenommen um dem Problem auf die Spur zu kommen aber es klappt nicht.

Hier die kurze Form:

Code: Alles auswählen



choice = input("Deine Wahl ")
computer=["A","B","C"]

if choice in [computer]:
	print("Match")
	
else:
        print("Wrong input")

Durch Eingabe wird die Variabel choice bestimmt
und mit der Liste computer verglichen.
Wenn die Eingabe in der Liste ist, müsste „Match“ ausgegeben werden, sonst „Wrong input“.

Aber: es wird IMMER Wrong input ausgegeben auch wenn ich A B oder C eingebe.

Was mache ich falsch?
Benutzeravatar
pillmuncher
User
Beiträge: 1529
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

Kannst du erklären, wozu die eckigen Klammern in der if-Klausel dienen?
In specifications, Murphy's Law supersedes Ohm's.
Benutzeravatar
andie39
User
Beiträge: 152
Registriert: Dienstag 7. Dezember 2021, 16:32

pillmuncher hat geschrieben: Mittwoch 15. Dezember 2021, 20:14 Kannst du erklären, wozu die eckigen Klammern in der if-Klausel dienen?

Danke……das wars…..
Benutzeravatar
andie39
User
Beiträge: 152
Registriert: Dienstag 7. Dezember 2021, 16:32

So, ich versuche ein neues selbst zu schreiben.

Einen Umrechner für Temperaturen in Celsius, Fahrenheit und Kelvin

Dabei habe ich erneut ein Problem mit if/else, eigentlich habe ich schon mehr geschrieben aber bei Zwischentests geht es nicht weiter also habe ich Teile entfernt um das Problem zu finden.

Code: Alles auswählen


# Dies ist ein Konverter zur Umrechnung der Temperaturen Kelvin, Celsius und Fahrenheit

def main():
	
    print("Willkommen zu 'Temp-Konv,' dem Temperatur Umrechner' von Celsius, Fahrenheit und Kelvin! \n")

    print("Bitte wählen Sie eine Umrechnungsvariante: \n\n")

    print("(1)Umrechnung: Celsius in Fahrenheit")
    print("(2)Umrechnung: Celsius in Kelvin")
    print("(3)Umrechnung: Fahrenheit in Celsius")
    print("(4)Umrechnung: Fahrenheit in Kelvin")
    print("(5)Umrechnung: Kelvin in Celsius")
    print("(5)Umrechnung: Kelvin in Fahrenheit")
    
    eingabe = input("Ihre Wahl: ")
    
    if eingabe == 1 or eingabe == 2:
        print("Wählen Sie einen Wert in Celsius")
        
    elif eingabe == 3 or eingabe == 4:
        print("Wählen Sie einen Wert in Fahrenheit")
    

        
if __name__ == "__main__":
    main()

        

Wenn ich eine Zahl zwischen 1 und 4 Eingabe kommt keine Ausgabe was ich gewählt habe.

Es gibt auch keine Fehlermeldung.

Ich verstehe es nicht.
Sirius3
User
Beiträge: 18250
Registriert: Sonntag 21. Oktober 2012, 17:20

`input` liefert immer einen String. Das kann niemals gleich einer Zahl sein. Das mußt Du schon selbst umwandeln.
Benutzeravatar
andie39
User
Beiträge: 152
Registriert: Dienstag 7. Dezember 2021, 16:32

Sirius3 hat geschrieben: Sonntag 19. Dezember 2021, 13:54 `input` liefert immer einen String. Das kann niemals gleich einer Zahl sein. Das mußt Du schon selbst umwandeln.

…..jetzt wo du es sagst…..
Danke :(
Benutzeravatar
__blackjack__
User
Beiträge: 13998
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@andie39: Hier hätte man sich zumindest eine Fehlermeldung selber schreiben können, wenn es am Ende noch ein ``else`` damit gibt. Hier dann nicht mit ``assert`` weil mal von der fehlenden Umwandlung abgesehen, eine Falscheingabe vom Benutzer ja kein Fehler des Programmierers ist.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Antworten