Seite 1 von 1

if a==0:

Verfasst: Samstag 24. Juli 2010, 11:33
von zenker
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?

Re: if a==0:

Verfasst: Samstag 24. Juli 2010, 11:49
von Rebecca
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

Re: if a==0:

Verfasst: Samstag 24. Juli 2010, 11:53
von zenker
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!