Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Python Tabellenfunktion definieren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen Python Tabellenfunktion definieren
Beiträge zu diesem Thema Autor Datum
 Python Tabellenfunktion definieren Dr.Java 04.11.2016 19:18
 RE: Python Tabellenfunktion definieren eulerscheZahl 04.11.2016 19:53
 RE: Python Tabellenfunktion definieren Dr.Java 04.11.2016 20:06
 RE: Python Tabellenfunktion definieren eulerscheZahl 04.11.2016 20:10
 RE: Python Tabellenfunktion definieren Dr.Java 04.11.2016 20:19

Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Dr.Java Dr.Java ist männlich
Foren As


images/avatars/avatar-71.jpg

Dabei seit: 21.03.2016
Beiträge: 99

Python Tabellenfunktion definieren Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo. Ich habe wieder eine Frage zu Python.

Ich habe jetzt ein Programm erstellt zur Berechnung des Osterdatums bei beliebiger Jahresangabe ,basierend auf der ergänzten Osterformel.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
def easter(year):
    K = year//100
    M = 15 + (3*K+3)//4 - (8*K + 13)//25
    S = 2 - (3*K+3)//4
    A = year%19
    D = (19*A+M)%30
    R = (D + A//11)//29
    OG= 21 + D - R
    SZ= 7 - (year+year//4+S)%7
    OE= 7 - (OG - SZ)%7
    OS= OG + OE
    if OS>31:
        return("april " +str(OS-31).zfill(2))
    else:
        return("march " +str(OS))


Ich würde jetzt gerne noch eine Tabelle erstellen die für ein beliebiges Jahresintervall
das aktuelle Jahr und das entsprechende Datum von Ostern ausgibt zu erstellen.
Nur wie würde ich so eine allgemeine Tabelle in Python erstellen?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
def printeaster(first, final):
    K = year//100
    M = 15 + (3*K+3)//4 - (8*K + 13)//25
    S = 2 - (3*K+3)//4
    A = year%19
    D = (19*A+M)%30
    R = (D + A//11)//29
    OG= 21 + D - R
    SZ= 7 - (year+year//4+S)%7
    OE= 7 - (OG - SZ)%7
    OS= OG + OE
    if OS>31:
        return("april " +str(OS-31).zfill(2))
    else:
        return("march " +str(OS))
    print('year  day')
    print('-'*12)
    print('{0:.1f}   {1:2d}'.format(first, date ))

Das wäre mein Ansatz soweit, wie kann ich das noch modifizieren? Wäre dankbar für Reckmeldungen.

lg

__________________
Zitat:
"Ich glaube, es gibt einen weltweiten Bedarf an vielleicht fünf Computern."
-Thomas Watson

04.11.2016 19:18 Dr.Java ist offline Beiträge von Dr.Java suchen Nehmen Sie Dr.Java in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

year ist nicht definiert und die verwendest first und last nicht.
So läuft es zumindest schonmal:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
def printeaster(first, final):
    for year in range(first, final + 1):
        K = year//100
        M = 15 + (3*K+3)//4 - (8*K + 13)//25
        S = 2 - (3*K+3)//4
        A = year%19
        D = (19*A+M)%30
        R = (D + A//11)//29
        OG= 21 + D - R
        SZ= 7 - (year+year//4+S)%7
        OE= 7 - (OG - SZ)%7
        OS= OG + OE
        if OS>31:
            print(str(year) + ": april " +str(OS-31).zfill(2))
        else:
            print(str(year) + ": march " +str(OS))

Ich weiß immer noch nicht genau, wie deine Tabelle aussehen soll.

__________________
Syntax Highlighting fürs Board (Link)
04.11.2016 19:53 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Dr.Java Dr.Java ist männlich
Foren As


images/avatars/avatar-71.jpg

Dabei seit: 21.03.2016
Beiträge: 99

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Pardon , ich dachte die letzten beiden Zeilen würden als Hinweis ausreichen.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
 year  day
------------
2016   march 27

2017  april 16

2018  april 01


So eine Tabelle in etwa,dann für beliebige Start und Endwerte. Danke dir auf jeden Fall ,so was in der Richtung habe ich gesucht.

lg

__________________
Zitat:
"Ich glaube, es gibt einen weltweiten Bedarf an vielleicht fünf Computern."
-Thomas Watson

04.11.2016 20:06 Dr.Java ist offline Beiträge von Dr.Java suchen Nehmen Sie Dr.Java in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Oh, das habe ich direkt rausgelöscht, weil es nach dem return stand und deshalb toter Code war.
Dann schieben wir das eben noch nach oben:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
def printeaster(first, final):
    print('year  day')
    print('-'*12)
    for year in range(first, final + 1):
        K = year//100
        M = 15 + (3*K+3)//4 - (8*K + 13)//25
        S = 2 - (3*K+3)//4
        A = year%19
        D = (19*A+M)%30
        R = (D + A//11)//29
        OG= 21 + D - R
        SZ= 7 - (year+year//4+S)%7
        OE= 7 - (OG - SZ)%7
        OS= OG + OE
        if OS>31:
            print(str(year) + ": april " +str(OS-31).zfill(2))
        else:
            print(str(year) + ": march " +str(OS))

Ausgabe:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
year  day
------------
2000: april 23
2001: april 15
2002: march 31
2003: april 20
2004: april 11
2005: march 27
2006: april 16
2007: april 08
2008: march 23
2009: april 12
2010: april 04
2011: april 24
2012: april 08
2013: march 31
2014: april 20
2015: april 05
2016: march 27


__________________
Syntax Highlighting fürs Board (Link)
04.11.2016 20:10 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Dr.Java Dr.Java ist männlich
Foren As


images/avatars/avatar-71.jpg

Dabei seit: 21.03.2016
Beiträge: 99

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ah so geht das also,dachte schon etwas in diese Richtung. Ich kann mich nur wiederholen und sagen vielen lieben Dank.

lg

__________________
Zitat:
"Ich glaube, es gibt einen weltweiten Bedarf an vielleicht fünf Computern."
-Thomas Watson

04.11.2016 20:19 Dr.Java ist offline Beiträge von Dr.Java suchen Nehmen Sie Dr.Java in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Informatiker Board » Themengebiete » Praktische Informatik » Python Tabellenfunktion definieren