mein erstes Programm und direkt fehler, die ich nicht kenne
Verfasst: Donnerstag 14. November 2002, 16:24
Also ich hab jetzt mein erstes Programm fertig, es läuft aber nicht und ich weis nicht wieso:
Ich hoffe mir kann einer sagen wie ich den feher beheben kann und guckt bitte nach ob dort nicht noch mehr fehler sind, ich hab selber schon lange dran überlegt, aber ich weis nicht was falsch ist !
Code: Alles auswählen
import sys
tage=("dienstag","mittwoch","donnerstag","freitag","samstag","sonntag","montag")
schalt=0
montag=0
dienstag=0
mittwoch=0
donnerstag=0
freitag=0
samstag=0
sonntag=0
x=0
while x<50: #Kleine Schleife um den Bildschirm zu saeubern.
print"\n"
x=x+1
# Kleines Eingabemenu
print "\t\t\t***Gregorianischer Kalender***\n"
print "\t\t\t******************************\n\n"
print "\t\t\t\t***Auswahl***\n\n"
print "\tWas möchten Sie machen\n\n"
print "\t\t<1> Berechnen des häufigsten Tages nach Eingabe einer Zahl\n"
print "\t\t<2> Berechnen des Wochentages nach Eingabe eines Datums\n\n"
print "\t Eingabe > "
eingabe=input()
if eingabe != 1 and eingabe != 2: # Kleine Eingabekontrolle
print "\n\n\t\tSie haben eine falsche Eingabe getätigt. Programm wird beendet.\n\n";
sys.exit
if eingabe==1:
routine() # Aufrufen der Subroutine fuer den Menupunkt 1
if eingabe==2:
haupt() # Aufrufen der Subroutine fuer den Menupunkt 2
def bubble(list):
for x1 in range(7):
for y1 in range(7):
if list[x1]<list[y1]:
tempi=list[x1]
list[x1]=list[y1]
list[y1]=tempi
return list
def routine(): #Routine die den häufuigsten Wochentag berechnet
print "Zu welchem Tag im Monat moechten sie den haeufigsten Wochentag wissen?\n\n"
day=input()
jahr=1
month=0
print day,"\n"
for zahl in range(13):
if zahl <1:
zahl=1
month=month+1
print day, month, jahr, "\n"
berechne()
if bla==0:
dienstag=dienstag+1
print "Di\n"
if bla==1:
mittwoch=mittwoch+1
print "Mi\n"
if bla==2:
donnerstag=donnerstag+1
print "Do\n"
if bla==3:
freitag=freitag+1
print "Fr\n"
if bla==4:
samstag=samstag+1
print "sa\n"
if bla==5:
sonntag=sonntag+1
print "SO\n"
if bla==6:
montag=montag+1
print "mo\n"
zahlen=[montag , dienstag , mittwoch, donnerstag , freitag , samstag, sonntag]
richtig=bubble(zahlen)
print zahlen[0],zahlen[1],zahlen[2],zahlen[3],zahlen[4],zahlen[5],zahlen[6]
if richtig[6] == montag:
print "Der häufigste Tag war ein Montag\n"
elif richtig[6] == dienstag:
print "Der häufigste Tag war ein Dienstag\n"
elif (richtig[6] == mittwoch:
print "Der häufigste Tag war ein Mittwoch\n"
elif richtig[6] == donnerstag:
print "Der häufigste Tag was ein Donnerstag\n"
elif richtig[6] == freitag:
print "Der häufigste Tag war ein Freitag\n"
elif richtig[6] == samstag:
print "Der häufigste Tag war ein Samstag\n"
elif richtig[6] == sonntag:
print "Der häufigste Tag war ein Sonntag\n"
sys.exit
def haupt():
print "\n\n\t\tJahr[1..x] > " # Eingabe des Jahres mit kleiner Eingabekontrolle
jahr=input()
if jahr < 1:
print "\n\n\t\tDas Jahr $jahr gibt es nicht. Programm wird beendet.\n\n"
sys.exit
print"\n\n"
print "\t\tMonat[1..12] > " # Eingabe des Monats mit kleiner Eingabekontrolle
month=input()
if month < 1 or month > 12:
print "\n\n\t\tDer Monat $month existiert nicht. Programm wird beendet.\n\n";
sys.exit;
print "\n\n"
if month == 1 or month ==3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:
monats_tage="1..31"
elif month == 4 or month == 6 or month == 9 or month == 11):
monats_tage="1..30"
elif month == 2 and ((jahr % 4 !=0) or (jahr % 100 == 0 and jahr % 400 != 0)):
monats_tage="1..28"
elif month == 2:
monats_tage="1..29"
print "\t\tTag[$monats_tage] > " # Eingabe des Tages,mit Anzeige der moeglichen Eingaben
day=input()
if day < 1 or day >31: # Kleine Eingabekontrolle
{
print "\n\n\t\tSie haben eine falsche Eingabe getätigt. Programm wird beendet.\n\n"
sys.exit
}
elif month == 2 and ((jahr % 4 !=0) or (jahr % 100 == 0 and jahr % 400 != 0)):
if day > 28:
print "\n\n\t\tDen $day.2.$jahr gibt es nicht. Programm wird beendet\n\n"
sys.exit
elif month == 2:
if day > 29:
print "\n\n\t\tDen $day.2.$jahr gibt es nicht. Programm wird beendet.\n\n"
sys.exit
elif (month == 1 or month==3 or month==5 or month==7 or month==8 or month==10 or month==12) and (day > 31):
print "\n\n\t\tDen $day.$month gibt es nicht. Programm wird beendet.\n\n"
sys.exit
elif month == 4 or month == 6 or month == 9 or month == 11) and day > 30:
print"\n\n\t\tDen $day.$month gibt es nicht. Programm wird beendet.\n\n"
sys.exit
print "\n\n"
print "\t\t\tDer $day.$month.$jahr war ein "; # Die Ausgabe des Tages :)
berechne()
def round(number): # Kleine Subroutine zum runden von Werten
return int(number + 0.5)
def berechne:
if month < 3: # Vorbereitung fuer die Berechnung der Tage unter Beruecksichtigung der Schaltjahre
schalt=day + month;
if jahr % 4 != 0 or (jahr % 100 == 0 and jahr % 400 != 0):
schalt=schalt+1
temp1=int((jahr-1600)/100)
temp2=int((jahr-1600)/400)
# Berechnung der Anzahl der Tage
anzahl=int(jahr * 365.25) - round((13-month) * 30.6)+ day - temp1 + temp2 + schalt
bla=$anzahl % 7 # Zahl zwischen 0 und 6 als Wochentag
# Ausgabe des berechneten Tages
if bla == 0:
print "Dienstag\n\n"
if bla == 1:
print "Mittwoch\n\n"
if bla == 2:
print "Donnerstag\n\n"
if bla == 3:
print "Freitag\n\n"
if bla == 4:
print "Samstag\n\n"
if bla == 5:
print "Sonntag\n\n"
if bla == 6:
print "Montag\n\n"