Problem mit ABC.data
Ich benutze Idle.
Immer noch ein Problem:
So vorerst einmal das ist wieder nur ein Test teil eines größeren Programms. Es sollte eigendlich eine Zahl abspeichern und dann später durch eine Erneute eingabe die beiden Zahlen addieren (zuersteigegebene + zweiteingabe) und das Ergebniss Abspeichern. Das Ergebniss wird dabei zur ersteingabe.
Ich wäre echt dankbar für nen nützlichen code oder einen sehr hilfreichen Tipp. mfg.
Code: Alles auswählen
import cPickle as p
bladatei = 'bla.data'
dic = {}
dic["text"] = int(raw_input('Zahl eigeben'))
bla = 0
a = file(bladatei, 'w')
p.dump(bla, a)
a.close()
a = file(bladatei)
bla3 = p.load(a)
aaa = dic["text"] + bla3
bla = aaa
a = file(bladatei, 'w')
p.dump(bla, a)
print aaa
a.close()
Ich wäre echt dankbar für nen nützlichen code oder einen sehr hilfreichen Tipp. mfg.
Okay, die Teddybär Methode. Schnapp Dir ein Kuscheltier, setz' es neben dem Monitor und erkläre ihm den Quelltext Zeile für Zeile. Das da oben ist ganz einfacher, linear abgearbeiteter Quelltext. Wenn das nicht hilft, dann weiss ich auch nicht weiter.
@ jens danke für den link
@ BlackJack Nein hilft trotz euserst merkwürdiger Metapher nicht, is aber auch egal.
@ Gerold danke für deinen Code der hat letztendlich doch all meine Probleme gelöst. Auch wenn noch gewisse Teile des Programms fehlen (z.B. ein menu oder eine löschfunktion), und es für manche Pros noch ziemlich unprofessionell aussieht. Poste ich erstmal das Skript.
@ BlackJack Nein hilft trotz euserst merkwürdiger Metapher nicht, is aber auch egal.
@ Gerold danke für deinen Code der hat letztendlich doch all meine Probleme gelöst. Auch wenn noch gewisse Teile des Programms fehlen (z.B. ein menu oder eine löschfunktion), und es für manche Pros noch ziemlich unprofessionell aussieht. Poste ich erstmal das Skript.
Code: Alles auswählen
# Ersparnissrechner 0.4, python
# made by Malle
# -*- coding: iso-8859-1 -*-
import types
print "*" * 70
print "Ersparnissrechner, zum Beenden Strg+C druecken oder exit Eingeben"
print "*" * 70
TAGE = "tage.txt"
ZIG = "zig.txt"
def read_number(filename):
try:
t = file(filename, "r")
except IOError:
return 0
try:
try:
numtag = int(t.readline())
except ValueError:
numtag = 0
finally:
t.close()
return numtag
def read_number2(zigaretten):
try:
z = file(zigaretten, "r")
except IOError:
return 0
try:
try:
numzig = int(z.readline())
except ValueError:
numzig = 0
finally:
z.close()
return numzig
def write_number(filename, numtag):
assert(isinstance(numtag, (types.IntType, types.LongType)))
t = file(filename, "w")
try:
t.write(str(numtag))
finally:
t.close()
def write_number2(zigaretten, numzig):
assert(isinstance(numzig, (types.IntType, types.LongType)))
z = file(zigaretten, "w")
try:
z.write(str(numzig))
finally:
z.close()
def show_number(numtag):
print "Aktueller Tag: %i" % numtag
def show_number2(numzig):
print "Anzahl Zigaretten: %i" % numzig
def ask_for_number():
print
print "Vor wieviel Tagen haben Sie zuletzt geraucht?"
try:
s = raw_input("Eingabe: ")
except KeyboardInterrupt:
print
print "Es wurde STRG+C gedrückt!"
print
return None
if s.lower() == "exit":
return None
else:
try:
numtag = int(s)
return numtag
except ValueError:
print
print "Bitte geben sie eine ganze Zahl ein."
def ask_for_number2():
print
print "Wieviele haben sie seither geraucht"
try:
s = raw_input("Eingabe: ")
except KeyboardInterrupt:
print
print "Es wurde Strg+C gedrückt!"
print
return None
if s.lower() == "exit":
return None
else:
try:
numzig = int(s)
return numzig
except ValueError:
print
print "Bitte geben sie eine Ganze Zahl ein."
def berechnung_frueher():
old_number = read_number(TAGE)
show_number(old_number)
new_number = ask_for_number()
new_number = old_number + new_number
write_number(TAGE, new_number)
global frueher
frueher = new_number * 4 / 3
def berechnung_jetzt():
old_number2 = read_number2(ZIG)
show_number2(old_number2)
new_number2 = ask_for_number2()
new_number2 = old_number2 + new_number2
write_number2(ZIG, new_number2)
global jetzt
jetzt = new_number2 * 0.2
def main():
while True:
berechnung_frueher()
berechnung_jetzt()
geldfrueher = frueher
geldjetzt = jetzt
Ersparniss = geldfrueher - geldjetzt
print
print "Sie haben bereits", Ersparniss, "Euro gespart."
print
if __name__ == "__main__":
main()
Ich weis das da noch einiges drann verbessert werden kann bzw. muss aber ich war erst einmal froh das alles mit der berechnung funktioniert hat.
An Die feinarbeit mach ich mich heute nacht mal rann.
An Die feinarbeit mach ich mich heute nacht mal rann.