jede Stunde soll die Zahl größer werden

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.
Benutzeravatar
A1245x
User
Beiträge: 28
Registriert: Donnerstag 10. April 2014, 13:02

@Sirius3
Fast so ein Script wollt ich haben, nur dass sich das Startdatum aktualisiert.
Also Startdatum wäre heute das Datum von heute, morgen wäre es das von Datum von morgen...
Ist das Zieldatum erreicht, soll z.b. K mit 1 addiert und gespeichert werden. Bräuchte man eine externe Datei, wäre es trotzdem Ok.
Nun soll sich das Zieldatum um einen Monat verändern (2014,5,12)-->(2014,6,12)
Ich habe es versucht, allerdings bekam ich das nicht hin... :(
Bin noch Anfänger. Also bitte nicht so kompliziert erklären.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@A1245x
So wie BlackJack schon geschrieben hat: Du solltest Dir unbedingt einmal die grundlegenden Datentypen anschauen. Dazu gehören unter anderen unbedingt Listen/Tuples und Dictonaries.

Listen oder Tuples eignen sich z. B. sehr gut, wenn man mehrere zusammengehörende Werte ablegen möchte. Anstatt Dein ``a = ... b = ... c = ...`` sieht das dann mit einer Liste so aus:

Code: Alles auswählen

>>> current_date = [2014, 4, 13]
>>> current_date
[2014, 4, 13]
>>> current_date[0]
2014
>>> current_date[2]
13
Wenn Du diesen Werten dann auch noch weitere (z. B. die Zeit) anfügen möchtest, geht das sehr simpel:

Code: Alles auswählen

>>> current_date.extend((16, 15))
>>> current_date
[2014, 4, 13, 16, 15]
Einen einzelnen Wert (z. B. Sekunden):

Code: Alles auswählen

>>> current_date.append(30)
>>> current_date
[2014, 4, 13, 16, 15, 30]
Und diese Liste kannst Du dann als Argumentbündel weiterverwenden:

Code: Alles auswählen

>>> import datetime
>>> datetime.datetime(*current_date)
datetime.datetime(2014, 4, 13, 16, 15, 30)
Im Gegensatz zur Liste/Tuple, bei der man auf die enthaltenen Werte über einen Index (beginnend beim ersten Element mit der Nummer 0) zugreift, sind die Werte innerhalb eines Dictionaries in keiner festen Reihenfolge enthalten, besitzen dafür allerdings ein Schlüsselwort (key), über das ich gezielt einen bestimmten Wert abfragen kann:

Code: Alles auswählen

>>> current_date = {'year': 2014, 'month': 4, 'day': 13}
>>> current_date
{'month': 4, 'day': 13, 'year': 2014}
>>> current_date['year']
2014
Auch hier kann ich natürlich weitere Werte zufügen:

Code: Alles auswählen

>>> current_date['hour'] = 16
>>> current_date['minute'] = 15
>>> current_date
{'month': 4, 'minute': 15, 'day': 13, 'hour': 16, 'year': 2014}
Die Werte aus einem Dictionary kann ich dann ebenfalls an eine Funktion/Klasse übergeben:

Code: Alles auswählen

>>> datetime.datetime(**current_date)
datetime.datetime(2014, 4, 13, 16, 15)
Spiel damit einfach mal in einer Pythonshell und schau' Dir die Methoden, die Listen, Tuples und Dictionaries besitzen, an. Das wird Dir Dein Leben um ein vielfaches erleichtern :wink: bzw. vieles ist überhaupt erst damit möglich.

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
A1245x
User
Beiträge: 28
Registriert: Donnerstag 10. April 2014, 13:02

Ok, vielen Dank.
Allerdings ist mein derzeitiges Problem, dass Ich nicht weiss, wie Ich Variablen in einer exteren Datei abspeichere und wieder aufrufe.
Also:

Code: Alles auswählen

K = 3 #in externer Datei
K = K + 1 #Dies abspeichern
Bin noch Anfänger. Also bitte nicht so kompliziert erklären.
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

A1245x hat geschrieben:Allerdings ist mein derzeitiges Problem, dass Ich nicht weiss, wie Ich Variablen in einer exteren Datei abspeichere und wieder aufrufe.
"Reading and Writing Files" kommt im Tutorial in Kapitel 7. Bis wohin bist du denn schon vorgedrungen? Oder bist du schon daran vorbei und hast noch Fragen dazu?
Benutzeravatar
A1245x
User
Beiträge: 28
Registriert: Donnerstag 10. April 2014, 13:02

Vielen Dank. Das Kapitel hatte ich wohl ausversehen übersprungen :oops: .
Bin noch Anfänger. Also bitte nicht so kompliziert erklären.
Benutzeravatar
A1245x
User
Beiträge: 28
Registriert: Donnerstag 10. April 2014, 13:02

Ich geb auf.
Ich habe alles versucht.
Ich ziehe die Frage zurück, scheint echt schwer zu sein.
Nächstes mal frage ich was einfacheres, damit ich dass auch von selbst hinbekommen kann.
Aber Vielen Dank an euch.
Bin noch Anfänger. Also bitte nicht so kompliziert erklären.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@A1245x
Ich vermute mal, dass nicht Dein Vorhaben zu schwer, sondern Deine Herangehensweise zu konfus bzw. zu ungeduldig ist. Meine Erfahrung ist immer wieder, dass man sich keinen Gefallen tut, einfach darauf los zu programmieren. Joe Armstrong (der, der die Programmiersprache Erlang geschrieben hat) schreibt in 'Coders at Work' sinngemäß:

Am Anfang meiner Programmiertätigkeit musste ich ein Programm erstmal schreiben, um herauszufinden, ob es funktioniert. Heute kann ich mir dasselbe einfach denken. Zeit spare ich mir dadurch keine, die Ausprobierphase dauerte ein Jahr, die Nachdenkphase auch, ich muss nur weniger tippen. :wink: (aus 'Weniger schlecht programmieren', O'Reilly Verlag)

Vielleicht hilft es Dir, einmal die Tastatur beiseite zu schieben und auf einem Blatt Papier zu skiziieren, wie Du Dir Dein Programm grob vorstellst, welche Features es haben soll. Dann hast Du auch gleich mal einen Überblick, welche Funktionen, Module, Frameworks etc. da zum Einsatz kommen. Und so brichst Du das ganze dann Stück für Stück herunter und beginnst dann, eine erste Anforderung zu lösen, z. B. eine Funktion, die aus einer Nutzereingabe ein `datetime.datetime` erstellt, das dann wiederum als Basis für "jede Stunde soll die Zahl größer werden" dient...

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
A1245x
User
Beiträge: 28
Registriert: Donnerstag 10. April 2014, 13:02

Ok, Danke für deinen Tipp, mutettella.
So werde ich es in Zukunft machen.
Bin noch Anfänger. Also bitte nicht so kompliziert erklären.
Antworten