if a==0:

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.
Antworten
zenker
User
Beiträge: 19
Registriert: Dienstag 25. August 2009, 17:04

Hi,

so beim rumprobieren hatte ich folgendes Problem, das sich eine "if"-Anweisung nicht korrekt abarbeiten lies.

Code: Alles auswählen

class spielbericht(object):
	
	"""Klassenkommentar"""
	
	def __init__(self, aufn=40):
		self._aufnahmen=aufn
		if self._aufnahmen == 0:
			self._aufnahmen=99999		
	
	
	def neues_spiel(self):
		print str(self._aufnahmen)
Nach erstellen des Objekts und übergeben einer "0" an das Objekt, sowie späterem abfragen von "spielbericht.neues_spiel()"
war self._aufnahmen immer noch "0".
Erst nachdem ich "if self._aufnahmen == str(0):" eingesetzt hatte war self._aufnahmen=99999, wenn ich dann eine "0" übergeben hatte.
Ist die "0" in diesem Fall was besonderes?
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

zenker hat geschrieben:Nach erstellen des Objekts und übergeben einer "0" an das Objekt, sowie späterem abfragen von "spielbericht.neues_spiel()"
[...]
Erst nachdem ich "if self._aufnahmen == str(0):" eingesetzt hatte war self._aufnahmen=99999, wenn ich dann eine "0" übergeben hatte.
Dann hast du wohl nicht den Integer 0 uebergeben, sondern den String "0". Wo kommt die Eingabe her? Wird sie z.B. aus User-Eingaben eingelesen, dann muesstest du sie vorher wohl noch in einen Integer umwandeln. Das hat nichts mit der Null zu tun. Lass dir doch einfach mal mit type ausgeben, was du vorliegen hast!

Code: Alles auswählen

>>> type(0)
<type 'int'>
>>> type("0")
<type 'str'>
>>> 0 == "0"
False
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
zenker
User
Beiträge: 19
Registriert: Dienstag 25. August 2009, 17:04

Rebecca hat geschrieben:Dann hast du wohl nicht den Integer 0 uebergeben, sondern den String "0".
Jetzt nach durchforsten des Programms muss ich zu meiner Schande gestehen, das es wirklich ein String ist. :oops:
Danke!
Antworten