Seite 1 von 1
Einfache Frage zu Funktionen und return
Verfasst: Donnerstag 23. Juli 2009, 11:46
von kame
Code: Alles auswählen
import random
bla = 0
def zufall():
zufalla = random.randint(1,2)
if zufalla==1:
bla = 1
elif zufalla==2:
bla = 2
return bla
zufall()
print bla
Warum erhalte ich keine 1 oder 2, sondern 0 als Ergebnis?
Vielen Dank!
Verfasst: Donnerstag 23. Juli 2009, 11:54
von BlackJack
@kame: Weil das `blah` auf Modulebene ein anderes `blah` ist als der lokale Name in der Funktion.
Du weist den Rückgabewert der Funktion auch nirgens zu. Du rufst die Funktion auf und machst dann mit dem Ergebnis nichts.
Code: Alles auswählen
import random
def zufall():
zufalla = random.randint(1, 2)
if zufalla == 1:
bla = 'a'
elif zufalla == 2:
bla = 'b'
return bla
def main():
bla = zufall()
print bla
if __name__ == "__main__":
main()
Verfasst: Donnerstag 23. Juli 2009, 13:07
von derdon
BlackJack: Das geht auch kürzer
Code: Alles auswählen
>>> import random
>>> def zufall():
... zufalla = random.randint(1, 2)
... return chr(zufalla + 96)
Verfasst: Donnerstag 23. Juli 2009, 13:17
von EyDu
Verfasst: Donnerstag 23. Juli 2009, 13:21
von derdon
Dann kannste ja auch gleich
machen.