Seite 1 von 1

warum wird immer else ausgegeben?

Verfasst: Mittwoch 13. September 2017, 15:15
von jan.b
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?

Re: warum wird immer else ausgegeben?

Verfasst: Mittwoch 13. September 2017, 15:24
von noisefloor
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