Seite 1 von 1
g.write
Verfasst: Sonntag 13. Juni 2010, 11:02
von coma85
hallöchen...
also ich schreibe gerade an einem programm, wobei ich die eingaben durch g.write
in einer output-datei speichere...
hier mal ein beispiel:
Code: Alles auswählen
schongespielt = raw_input("Hast du bereits zuvor schon einmal Roulette gespielt?: ")
g.write('Roulette gespielt?: ' + schongespielt + '\n')
print ''
besitz = 100
print "Dein Besitz zu Beginn: ", besitz
ende = "n"
while ende !="j":
einsatz = input("Dein Einsatz bitte: ")
besitz = besitz - einsatz
print ('\n'+'Wie willst du spielen?')
print "A - für schwarz oder rot"
print "B - für gerade oder ungerade"
print "C - für niedrig oder hoch"
print "D - für eine Zahl"+'\n'
spielart = raw_input("Auswahl: ")
g.write('Spielart: ' + spielart + '\n')
jetzt wollte ich auch ein g.write bei der Eingabe vom 'Einsatz' haben,
aber da zeigt er mir immer eine fehlermeldung...
woran liegt das??
ich tippe ja, dass es an der fehlenden raw_input angabe liegt, aber wie kann ich das ändern??
LG
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 11:09
von Rebecca
Was fuer eine Fehlermeldung? Was ist g? (Der gepostete Code kann auch ohne Zeile zwei nicht funktionieren.)
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 11:13
von coma85
also g definiere ich am anfang des programms mit: g = open("output.txt","w")
und am ende des programms schließt es mit: g.close()
es zeigt mir folgendes als fehler, wenn ich schreibe:
Code: Alles auswählen
einsatz = input("Dein Einsatz bitte: ")
g.write('Einsatz: ' + einsatz + '\n')
besitz = besitz - einsatz
fehlermeldung:
Traceback (most recent call last):
File "C:\Dokumente und Einstellungen\...pyw", line 27, in <module>
g.write('Einsatz: ' + einsatz + '\n')
TypeError: cannot concatenate 'str' and 'int' objects
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 11:20
von EyDu
Dann lass dir mal die Typen von "Einsatz: " und einsatz ausgeben.
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 11:30
von coma85
was meinst du damit?
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 11:32
von /me
coma85 hat geschrieben:was meinst du damit?
type()
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 11:49
von derdon
Hier ein etwas anderer Code, der die gleiche Fehlermeldung hervorruft:
Code: Alles auswählen
>>> 'hallo welt' + 42
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 12:00
von coma85
also ich habe jetzt mal
da gibt er mir aus: <type 'type'>
hm... hilft mir nicht so sehr... weiß immernoch nicht, was ich da ändern muss,
damit er mir den "Einsatz" in der output-datei speichert...
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 12:02
von derdon
Die Zeilen sollten so lauten:
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 12:07
von coma85
achso alles klar... str und int
also müsste ich meine eingangsdefintion
ändern?
oder ist da eine doppelbelegung mit int und str nicht möglich?
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 12:14
von Rebecca
coma85 hat geschrieben:also müsste ich meine eingangsdefintion
ändern?
Wo auch immer der Code jetzt herkommt, der hat doch mit deiner Fehlermeldung, die du oben gepostet hast, ueberhaupt nichts zu tun! Schau dir doch mal die Zeile an, auf die die Fehlermeldung verweist (und auch den Post von derdon).
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 12:25
von coma85
ich weiß ja wo der fehler liegt... bei g.write('Einsatz: ' + einsatz + '\n')
ist mir ja klar... und ich weiß auch, dass es scheinbar daran liegt, dass
ich 2 operatoren verwende (int, str)
aber warum hat es dann bei den raw_input anweisungen funktioniert?
und was kann ich machen, dass es funktioniert :K
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 12:42
von derdon
Wandle einsatz in einen String um, bevor du ihn mit den anderen Strings verbindest. Oder besser: benutze string-formatting (google -> "python string-formatting").
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 15:09
von coma85
hab mir dazu jetzt mal nen paar foren angesehen und hilfsdateien...
nur bei der umsetzung haperts...
hab es jetzt so geschrieben
Code: Alles auswählen
einsatz = input("Dein Einsatz bitte: {einsatz}".format(einsatz))
g.write('Einsatz: ' + einsatz + '\n')
besitz = besitz - einsatz
er zeigt mir den fehler:
Traceback (most recent call last):
File "C:\Dokumente und Einstellungen\....pyw", line 27, in <module>
einsatz = input("Dein Einsatz bitte: {einsatz}".format(einsatz))
KeyError: 'einsatz'
ich krieg ne meise... es will nicht funktionieren...
ich hab das mit dem string formatting noch nie gemacht und hab
sicher nen simplen denkfehler... kann mir jemand sagen, welchen?
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 15:32
von DaMutz
entweder du machste es so:
oder so (das Keyword musst du zuordnen):
Code: Alles auswählen
"Dein Einsatz bitte: {einsatz}".format(einsatz=einsatz)
oder ohne Keyword:
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 15:43
von EyDu
Das bringt aber auch nichts, da "einsatz" noch gar nicht existiert.
@coma85: Du möchtest die Formatierung in der write-Zeile benutzen, nicht beim input.
Re: g.write
Verfasst: Sonntag 13. Juni 2010, 15:52
von coma85
jawoll...es funktioniert... dankeschön für die hilfe
ps: habs in die write-anweisung gepackt