Seite 1 von 1
Globale Variablen
Verfasst: Mittwoch 14. April 2010, 09:14
von lodder
Sind eigentlich Variablen die erst in einer if-Anweisung inizialisiert werden globale Variablen oder muss ich sie vor der if-Anweisung z.B. mit zahl = None oder zahl = 0 erst inizialisieren ?
Bei C muss ich es davor machen, weil sonst die Variable nur in der if-Anweisung als sichtbar dient.
viele grüße
Verfasst: Mittwoch 14. April 2010, 09:21
von jbs
Ich verstehe nicht was du meinst. Hast du denn mal ausprobiert, was du möchtest und hast du ein Beispiel.
Globale Variablen haben nichts mit f zu tun. Wenn du auf eine Variable zugreifen willst, dann sollte sie auch bestehen.
Re: Globale Variablen
Verfasst: Mittwoch 14. April 2010, 09:34
von Defnull
lodder hat geschrieben:Sind eigentlich Variablen die erst in einer if-Anweisung inizialisiert werden globale Variablen oder muss ich sie vor der if-Anweisung z.B. mit zahl = None oder zahl = 0 erst inizialisieren ?
Bei C muss ich es davor machen, weil sonst die Variable nur in der if-Anweisung als sichtbar dient.
if/while/for Blöcke haben keinen eigenen Namensraum. Variablen, die darin angelegt werden, sind auch außerhalb des Blockes sichtbar, aber natürlich erst nachdem sie angelegt wurden.
Hör auf in C zu denken. Das hilft dir nicht weiter. Vergiss C und lerne Python als eine völlig neue Sprache. Dann ersparst du dir einigen Ärger. Und vor allem: Probiere es aus. Dein Forenbeitrag hat wahrscheinlich mehr Tipparbeit verursacht, als ein kleines Experiment.
Verfasst: Mittwoch 14. April 2010, 09:39
von lodder
hier mal ein saublödes Beispiel:
Code: Alles auswählen
wert = -2
while True:
if wert == 1:
zahl = 0
break
else:
print 'Fehler'
zahl = -1
break
print zahl
das heißt also ich muss die Variable zahl nicht vor der While oder if -Schleife inizialisieren, sondern ich kann sie erst in der Schleife selbst erstellen mit zahl = -1 z.B.
Verfasst: Mittwoch 14. April 2010, 09:45
von sma
Ja.
Stefan
Verfasst: Mittwoch 14. April 2010, 09:48
von lodder
danke stefan. ich fange an python zu lieben. du hast recht. C einfach vergessen
Verfasst: Mittwoch 14. April 2010, 12:54
von /me
lodder hat geschrieben:Code: Alles auswählen
wert = -2
while True:
if wert == 1:
zahl = 0
break
else:
print 'Fehler'
zahl = -1
break
break?
Das sieht aus wie bei einem case in C, aber nicht wie Python.
Verfasst: Mittwoch 14. April 2010, 13:15
von xpilz
break?
aber break gibt es doch in Python, zwar nur in Schleifen oder warst du auf den Schreibstil aus?
Verfasst: Mittwoch 14. April 2010, 13:55
von sma
Ich denke, /me kritisierte den Stil. In den konkreten Fall hätte das break auch hinter dem if/else stehen können und dann wiederum wäre die while-Schleife auch unnötig gewesen. Also einfach
Dies hingegen würde ich auch in Python lieber so schreiben:
Doch dann wäre die Frage, ob man Variablen auch innerhalb von if oder while-Blöcken erzeugen kann und ob sie dann auch nach diesen Blöcken noch existieren (sie tuen es) obsolet geworden.
Stefan