ich arbeite gerade an einem Code, der erarbeiten soll, ob man das Schuljahr schafft oder nicht.
Nun habe ich zwei Fehler.
1. Wenn man ein Nebenfach mit zwei Fächern zu je 7 Punkten ausgleichen will, so endet das Programm nicht.
2. Am Ende soll ausgegeben werden, Welche Fächer mit welchen ausgeglichen werden konnten. Wenn es sich um Fächer mit unterschiedlichen Noten handelt, dann geht alles, wenn die Noten gleich sind, dann wird zweimal das selbe Fach ausgegeben
Es würde mich sehr freuen, wenn mir jemand helfen könnte, wo meine Fehler liegen.
Code: Alles auswählen
# Noch gucken: 0 im freiwilligen Fach
# keine falschen Werte eingeben
# Variable
ausgang=0
hauptfaecherunter5=0
nebenfaecherunter5=0
hauptfaecherzehn=0
funktionende=1
gesamtzehn=0
exit=0
gesamtsieben=0
exitzwo = 0
poshaupt = 0
hauptausgleichen = ""
hauptaus = ""
hauptaus2 = ""
nebenausgleichen = ""
nebenaus = ""
nebenaus2 = ""
tt = 1
#Start
print ("==================== VERSETZUNGSRECHNER ====================")
print ("")
# Eingabe
mathe=int(input("Bitte geben sie ihre Mathematik-Note ein: "))
deutsch=int(input("Bitte geben sie ihre Deutsch-Note ein: "))
fremdsprache1=int(input("Bitte geben sie die Note ihrer ersten Fremdsprache ein: "))
fremdsprache2=int(input("Bitte geben sie die Note ihrer zweiten Fremdsprache ein: "))
biologie=int(input("Bitte geben sie ihre Biologie-Note ein: "))
chemie=int(input("Bitte geben sie ihre Chemie-Note ein: "))
religion=int(input("Bitte geben sie ihre Religions/ Ethik-Note ein: "))
geschichte=int(input("Bitte geben sie ihre Geschichts-Note ein: "))
musischesfach=int(input("Bitte geben sie die Note ihres musischen Faches ein: "))
physik=int(input("Bitte geben sie ihre Physik-Note ein: "))
politik=int(input("Bitte geben sie ihre Politik-Note ein: "))
sport=int(input("Bitte geben sie ihre Sport-Note ein: "))
freiwilligesfach=int(input("Bitte geben die Note ihres Wahlfaches ein: "))
#alle richtig?
richtig=[]
richtig.append(mathe)
richtig.append(deutsch)
richtig.append(fremdsprache1)
richtig.append(fremdsprache2)
richtig.append(biologie)
richtig.append(chemie)
richtig.append(religion)
richtig.append(geschichte)
richtig.append(musischesfach)
richtig.append(physik)
richtig.append(politik)
richtig.append(sport)
richtig.append(freiwilligesfach)
for p in richtig:
if p>15 or p<0:
print ("")
print ("Bitte geben sie ihre Punktzahlen aus der E-Phase ein!")
import sys
sys.exit()
# Ein Fach unter 0 Punkten?
pruefer0=[]
pruefer0.append(mathe)
pruefer0.append(deutsch)
pruefer0.append(fremdsprache1)
pruefer0.append(fremdsprache2)
pruefer0.append(biologie)
pruefer0.append(chemie)
pruefer0.append(religion)
pruefer0.append(geschichte)
pruefer0.append(musischesfach)
pruefer0.append(physik)
pruefer0.append(politik)
pruefer0.append(sport)
for x in pruefer0:
if x==0:
print ("")
print ("Sie sind nicht zu Q-Phase zugelassen.")
tt = 0
ausgang=1
if ausgang!=1:
# Einteilen in Haupt- und Nebenfächer
hauptfaecher=[]
nebenfaecher=[]
freiwilligefaecher=[]
zusatz=[]
hauptfaecher.append(mathe)
hauptfaecher.append(deutsch)
hauptfaecher.append(fremdsprache1)
hauptfaecher.append(fremdsprache2)
nebenfaecher.append(biologie)
nebenfaecher.append(chemie)
nebenfaecher.append(religion)
nebenfaecher.append(geschichte)
nebenfaecher.append(musischesfach)
nebenfaecher.append(physik)
nebenfaecher.append(politik)
nebenfaecher.append(sport)
freiwilligefaecher.append(freiwilligesfach)
zusatz.append(mathe)
zusatz.append(deutsch)
zusatz.append(fremdsprache1)
zusatz.append(fremdsprache2)
zusatz.append(biologie)
zusatz.append(chemie)
zusatz.append(religion)
zusatz.append(geschichte)
zusatz.append(musischesfach)
zusatz.append(physik)
zusatz.append(politik)
zusatz.append(sport)
zusatz.append(freiwilligesfach)
# Mehr als zwei Hauptfaecher unter 5 Punkten?
for y in hauptfaecher:
if y < 5:
hauptfaecherunter5=hauptfaecherunter5+1
if hauptfaecherunter5 > 1:
ausgang=1
print ("Du hast in 2 oder mehr hauptfaechern keine 5 Punkte erreicht")
tt = 0
# Mehr als drei Nebenfaecher unter 5 Punkten?
if ausgang!=1:
for z in nebenfaecher:
if z < 5:
nebenfaecherunter5=nebenfaecherunter5+1
if nebenfaecherunter5 > 2:
ausgang=1
print ("Du hast in 3 oder mehr Nebenfaechern keine 5 Punkte erreicht")
tt = 0
# Ausgleich Hauptfaecher
if ausgang!=1:
if hauptfaecherunter5 > 0:
# Welches Hauptfach muss ausgeglichen werden
for g in hauptfaecher:
if g < 5:
poshaupt = hauptfaecher.index(g)
if poshaupt == 0:
hauptausgleichen = "Mahthe"
if poshaupt == 1:
hauptausgleichen = "Deutsch"
if poshaupt == 2:
hauptausgleichen = "Fremdsprache 1"
if poshaupt == 3:
hauptausgleichen = "Fremdsprache 2"
for j in hauptfaecher:
if j > 9:
hauptfaecherzehn=hauptfaecherzehn+1
if hauptfaecherzehn > 0:
# Womit wird ausgeglichen
wert1=[]
for zui in hauptfaecher:
wert1.append(zui)
wert1.sort()
groesster=hauptfaecher.index(wert1.pop())
if groesster == 0:
hauptaus = "Mahthe"
if groesster == 1:
hauptaus = "Deutsch"
if groesster == 2:
hauptaus = "Fremdsprache 1"
if groesster == 3:
hauptaus = "Fremdsprache 2"
hauptfaecher.sort()
hauptfaecher.pop()
hauptfaecherunter5 = hauptfaecherunter5-1
funktionende = 0
# Ausgleich mit 7 Punkten
hauptfaechersiebenn=[]
hauptfaechersieben=0
if funktionende == 1:
for sieben in hauptfaecher:
if sieben > 6:
hauptfaechersieben=hauptfaechersieben+1
if hauptfaechersieben > 1:
# Womit wird ausgeglichen
wert2=[]
for zuu in hauptfaecher:
wert2.append(zuu)
wert2.sort()
groesster1=hauptfaecher.index(wert2.pop())
if groesster1 == 0:
hauptaus = "Mahthe"
if groesster1 == 1:
hauptaus = "Deutsch"
if groesster1 == 2:
hauptaus = "Fremdsprache 1"
if groesster1 == 3:
hauptaus = "Fremdsprache 2"
wert2.sort()
print (wert2)
groesster2=hauptfaecher.index(wert2.pop())
if groesster2 == 0:
hauptaus2 = "Mahthe"
if groesster2 == 1:
hauptaus2 = "Deutsch"
if groesster2 == 2:
hauptaus2 = "Fremdsprache 1"
if groesster2 == 3:
hauptaus2 = "Fremdsprache 2"
hauptausgleichen= hauptaus
hauptausgleichen2= hauptaus2
hauptfaecher.sort()
hauptfaecher.pop()
hauptfaecher.pop()
hauptfaecherunter5 = hauptfaecherunter5-1
# Schreibe neue Gesamt-List
gesamtliste=[]
for werte in hauptfaecher:
gesamtliste.append(werte)
for w in nebenfaecher:
gesamtliste.append(w)
for domi in freiwilligefaecher:
gesamtliste.append(domi)
# Gleiche Nebenfaecher aus
nebenausliste=[]
if nebenfaecherunter5 < 4:
s = nebenfaecherunter5
# Welches Nebenfach muss ausgeglichen werden
for u in nebenfaecher:
if u < 5:
posneben=nebenfaecher.index(u)
if posneben == 0:
nebenausgleichen += "Biologie "
if posneben == 1:
nebenausgleichen += "Chemie "
if posneben == 2:
nebenausgleichen += "Religion "
if posneben == 3:
nebenausgleichen += "Geschichte "
if posneben == 4:
nebenausgleichen += "musisches Fach "
if posneben == 5:
nebenausgleichen += "Physik "
if posneben == 6:
nebenausgleichen += "Politik "
if posneben == 7:
nebenausgleichen += "Sport "
for c in gesamtliste:
if c > 9:
gesamtzehn=gesamtzehn+1
while( s > 0 and exit == 0):
if gesamtzehn > 0:
gesamtliste.sort()
stelle1=zusatz.index(gesamtliste.pop())
if stelle1 == 0:
nebenaus += "Mathe "
if stelle1 == 1:
nebenaus += "Deutsch "
if stelle1 == 2:
nebenaus += "1. Fremdsprache "
if stelle1 == 3:
nebenaus += "2. Fremdsprache "
if stelle1 == 4:
nebenaus += "Biologie "
if stelle1 == 5:
nebenaus += "Chemie "
if stelle1 == 6:
nebenaus += "Religion "
if stelle1 == 7:
nebenaus += "Geschichte "
if stelle1 == 8:
nebenaus += "musisches Fach "
if stelle1 == 9:
nebenaus += "Pysik "
if stelle1 == 10:
nebenaus += "Politik "
if stelle1 == 11:
nebenaus += "Sport "
if stelle1 == 12:
nebenaus += "freiwilliges Fach "
nebenfaecherunter5 = nebenfaecherunter5-1
s = s-1
while (s > 0 and exitzwo==0):
if nebenfaecherunter5 > 0:
for p in gesamtliste:
if p > 6:
gesamtsieben=gesamtsieben+1
if gesamtsieben > 1:
gesamtsieben.sort()
stelle2=zusatz.index(gesamtsieben.pop())
if stelle2 == 0:
nebenaus += "Mathe "
if stelle2 == 1:
nebenaus += "Deutsch "
if stelle2 == 2:
nebenaus += "1. Fremdsprache "
if stelle2 == 3:
nebenaus += "2. Fremdsprache "
if stelle2 == 4:
nebenaus += "Biologie "
if stelle2 == 5:
nebenaus += "Chemie "
if stelle2 == 6:
nebenaus += "Religion "
if stelle2 == 7:
nebenaus += "Geschichte "
if stelle2 == 8:
nebenaus += "musisches Fach "
if stelle2 == 9:
nebenaus += "Pysik "
if stelle2 == 10:
nebenaus += "Politik "
if stelle2 == 11:
nebenaus += "Sport "
if stelle2 == 12:
nebenaus += "freiwilliges Fach "
stelle3=zusatz.index(gesamtsieben.pop())
if stelle3 == 0:
nebenaus += "Mathe "
if stelle3 == 1:
nebenaus += "Deutsch "
if stelle3 == 2:
nebenaus += "1. Fremdsprache "
if stelle3 == 3:
nebenaus += "2. Fremdsprache "
if stelle3 == 4:
nebenaus += "Biologie "
if stelle3 == 5:
nebenaus += "Chemie "
if stelle3 == 6:
nebenaus += "Religion "
if stelle3 == 7:
nebenaus += "Geschichte "
if stelle3 == 8:
nebenaus += "musisches Fach "
if stelle3 == 9:
nebenaus += "Pysik "
if stelle3 == 10:
nebenaus += "Politik "
if stelle3 == 11:
nebenaus += "Sport "
if stelle3 == 12:
nebenaus += "freiwilliges Fach "
if gesamtsieben < 1:
exitzwo = 1
# Konnte alles erforderliche ausgeglichen werden?
if tt==1:
print ("Du hast bestanden - Wir sehen uns in der Q1")
print ("Du konntest")
print (hauptausgleichen)
print ("mit")
print (hauptaus)
print (hauptaus2)
print ("ausgleichen")
print ("")
print ("Du konntest")
print (nebenausgleichen)
print ("mit")
print (nebenaus)
print ("ausgleichen")