warum wird immer else ausgegeben?

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
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

import sys
import tkinter
import turtle
import time
import random
import os
import datetime
import pickle
import math

#variablen / definitionen
"""


"""
#-------------------------------------------------------------

#vokale = ["a", "e", "i", "o", "u"]


#konsonanten = ["b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "r", "s", "t" "v", "w", "y"]



"""for x in range(int(helden_namen_anzahl[3])):
print(vokale[2])
random.shuffle(vokale)
"""


konsonanten = ["b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "r", "s", "t" "v", "w", "y"]
vokale = ["a", "e", "i", "o", "u"]
anzahl_der_buchstaben = [2, 3, 4, 5, 6]
konstallation_der_vokale_und_konsonanten = [1, 2]

random.shuffle(konstallation_der_vokale_und_konsonanten)
random.shuffle(vokale)
random.shuffle(konsonanten)
random.shuffle(anzahl_der_buchstaben)

random.choice(konstallation_der_vokale_und_konsonanten)
random.choice(anzahl_der_buchstaben)


if anzahl_der_buchstaben == 2 and konstallation_der_vokale_und_konsonanten == 1:
print("der name des helden ist %s" % (konsonanten[5]) + (vokale[2]))
random.shuffle(vokale)
random.shuffle(konsonanten)
random.shuffle(konstallation_der_vokale_und_konsonanten)
random.shuffle(anzahl_der_buchstaben)
elif anzahl_der_buchstaben == 3 and konstallation_der_vokale_und_konsonanten == 1:
print("der name des helden ist %s" % (konsonanten[5]) + (vokale[2]) + (vokale[2]))
random.shuffle(vokale)
random.shuffle(konsonanten)
random.shuffle(konstallation_der_vokale_und_konsonanten)
random.shuffle(anzahl_der_buchstaben)
elif anzahl_der_buchstaben == 4 and konstallation_der_vokale_und_konsonanten == 1:
print("der name des helden ist %s" % (konsonanten[5]) + (vokale[2]))
random.shuffle(vokale)
random.shuffle(konsonanten)
random.shuffle(konstallation_der_vokale_und_konsonanten)
random.shuffle(anzahl_der_buchstaben)
elif anzahl_der_buchstaben == 5 and konstallation_der_vokale_und_konsonanten == 1:
print("der name des helden ist %s" % (konsonanten[5]) + (vokale[2]))
random.shuffle(vokale)
random.shuffle(konsonanten)
random.shuffle(konstallation_der_vokale_und_konsonanten)
random.shuffle(anzahl_der_buchstaben)
elif anzahl_der_buchstaben == 5 and konstallation_der_vokale_und_konsonanten == 1:
print("der name des helden ist %s" % (konsonanten[5]) + (vokale[2]))
random.shuffle(vokale)
random.shuffle(konsonanten)
random.shuffle(konstallation_der_vokale_und_konsonanten)
random.shuffle(anzahl_der_buchstaben)
if anzahl_der_buchstaben == 2 and konstallation_der_vokale_und_konsonanten == 2:
print("der name des helden ist %s" % (konsonanten[5]) + (vokale[2]))
random.shuffle(vokale)
random.shuffle(konsonanten)
random.shuffle(konstallation_der_vokale_und_konsonanten)
random.shuffle(anzahl_der_buchstaben)
elif anzahl_der_buchstaben == 3 and konstallation_der_vokale_und_konsonanten == 2:
print("der name des helden ist %s" % (konsonanten[5]) + (vokale[2]))
random.shuffle(vokale)
random.shuffle(konsonanten)
random.shuffle(konstallation_der_vokale_und_konsonanten)
random.shuffle(anzahl_der_buchstaben)
elif anzahl_der_buchstaben == 4 and konstallation_der_vokale_und_konsonanten == 2:
print("der name des helden ist %s" % (konsonanten[5]) + (vokale[2]))
random.shuffle(vokale)
random.shuffle(konsonanten)
random.shuffle(konstallation_der_vokale_und_konsonanten)
random.shuffle(anzahl_der_buchstaben)
elif anzahl_der_buchstaben == 5 and konstallation_der_vokale_und_konsonanten == 2:
print("der name des helden ist %s" % (konsonanten[5]) + (vokale[2]))
random.shuffle(vokale)
random.shuffle(konsonanten)
random.shuffle(konstallation_der_vokale_und_konsonanten)
random.shuffle(anzahl_der_buchstaben)
else:
print("ein fehler ist aufgetreten. starte das programm neu")
[/Codebox]
ich habe es eigentlich so programmiert, dass ein Name rauskommen sollte (ich weiß ist noch nicht fertig) aber wieso wird immer else ausgegeben?
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

WICHTIG: Bitte Python-Code _immer_ in einer Codebox mit Syntax-Highlighting posten und nicht als Fließtext. Das ist so kaum bis garnicht lesbar.

`else` wird immer ausgeführt, weil keine der `if`/ `elif`Bedingungen erfüllt werden kann. Guck' dir mal an, von welchem Datentype `anzahl_der_buchstaben`und `konstallation_der_vokale_und_konsonanten` sind... und die vergleichst du mit einem Interger, da muss zwangsläufig `False` raus kommen.

Die Zeilen mit `random.choice(...)` sind in der Form sinnlos, weil du den Rückgabewert der Methode ins "Nirwana" schickst und an keine Variable bindest.

Gruß, noisefloor
Antworten