Listeninhalte mit Funktion erzeugen (Anfängerfrage)

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
maxfoxim
User
Beiträge: 10
Registriert: Sonntag 10. Februar 2008, 15:07
Wohnort: Köln

Hi Leute, ich bin seit kurzem dabei mir Python beizubringen. Habe auch schon so halbwegs ein Programmchen geschrieben. Nun zu meiner Frage: ich würde gerne in der folgenden Funktion die Werte in einer Liste speichern. Wie geht das? habe mich auch schon rumgeklickt, aber leider nichts hilfreiches gefunden

Code: Alles auswählen

def zahl (x):
    
    
    while x != 1:
        if x % 2 == 0:
           x=x/2
        else: x = x*3+1
        print x
Benutzeravatar
Craven
User
Beiträge: 223
Registriert: Dienstag 24. Januar 2006, 13:37

maxfoxim hat geschrieben:Nun zu meiner Frage: ich würde gerne in der folgenden Funktion die Werte in einer Liste speichern.
Welche Werte würdest du gerne speichern? Die bei if oder else oder x nach jedem Durchlauf von while?

Edit:
Mit append kannst du einen Wert an eine Liste anhängen.

Code: Alles auswählen

a = []
b = 2
a.append(b)
[code]q = 'q = %s; print q %% repr(q)'; print q % repr(q) [/code]
maxfoxim
User
Beiträge: 10
Registriert: Sonntag 10. Februar 2008, 15:07
Wohnort: Köln

die Zahlen die bei der Funktion herauskommen, könntest mir aber auch generell zeigen wie das geht, das wäre nett von dir
danke schon mal im voraus
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

na das hat er doch!

In Deinem Fall wohl so:

Code: Alles auswählen

ergebnis = []
for i in range(10):
    ergebnis.append(zahl(i))
print ergebnis
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Da wäre dann wohl vielleicht mal ein kleiner Hinweis auf das offizielle Python Tutorial angebracht.
Gnushi
User
Beiträge: 77
Registriert: Dienstag 12. Dezember 2006, 09:49

Hi!
Ah, es geht im Jahr der Mathematik um die Collatz-Folge ;-)
maxfoxim hat geschrieben:ich würde gerne in der folgenden Funktion die Werte in einer Liste speichern. Wie geht das?

Folgender Vorschlag mit Generatoren:

Code: Alles auswählen

def Collatz(a):
    while a != 1:
        if a % 2 == 0: 
            a = a // 2
        else:
            a = 3 * a + 1
        yield(a)

Li = [a for a in Collatz(10)]
print Li
Gruß

Gnushi
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Gnushi hat geschrieben:

Code: Alles auswählen

Li = [a for a in Collatz(10)]
Warum schwierig wenn es auch einfach geht:

Code: Alles auswählen

li = list(Collatz(10))
PS: Sieht dir mal PEP 8 an :)
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Antworten