ein paar Anfängerfragen zu Python

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.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Wenn du wirklich gut programmieren könntest, wüsstest du, dass ``return`` keine Funktion ist. :twisted:
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

schau dir map PEP-8 an

Warum machst du eigentlich kein neuen Thread auf?

Code: Alles auswählen

def is_negative(n):
    return n < 0

Achja, global funktioniert anders.
Zuletzt geändert von jbs am Montag 3. Mai 2010, 17:16, insgesamt 1-mal geändert.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Hero2
User
Beiträge: 19
Registriert: Freitag 16. April 2010, 20:13

........."""danke""" für die hilfreiche antwort ....... ne im ernst ... gut ist relativ !

ps.: Hatte keine lust deswegen nen neuen aufzumachen ...

@ jbs ich weiß zwar nicht, was der unterschied ist .... ich raff es einfach nicht ... warum da die return anweisung geht und bei mir nicht ...
BlackJack

@Hero2: ``return`` "wirft" nichts. Das ist eher der Sprachgebrauch bei Ausnahmen.

Du gibst zwar etwas zurück, aber Du machst damit nichts. Die Namen in einer Funktion sind lokal zu der Funktion. Das `n` in `Schau()` hat nichts mit dem `n` in `start()` zu tun und ``global`` solltest Du ganz schnell vergessen. Das Namen in verschiedenen Funktionen nichts miteinander zu tun haben, sollte doch von Haskell im letzten Semester bekannt sein!? Das ist bei Python's Funktionen auch so. Du musst den Rückgabewert schon an der Stelle wo Du die Funktion aufrufst auch irgendwie verwenden. Zum Beispiel direkt ausgeben oder an einen Namen binden.

Du verwendest in dem Quelltext doch auch andere Funktionen aus der Standardbibliothek die einen Wert zurückgeben, mit dem Du dann etwas machst. Das funktioniert mit selbstgeschriebenen Funktionen genau so.

Falls das mit der Geburtstags-Aufgabe zu tun hat: Das solltest Du weder rekursiv, noch mit anhängen und testen auf "enthaltensein" in einer Liste lösen. Das dauert auch wenn man es effizienter löst schon lange genug -- so *deutlich* länger. Python ist eine imperative Sprache und in ALP2 geht's ja auch jetzt am Anfang um prozedurale, imperative Programmierung.
Hero2
User
Beiträge: 19
Registriert: Freitag 16. April 2010, 20:13

geht nur indirekt um das geburtstagsteil ..... das hab ich schon auf nen anderen weg (nicht rekusiv gelöst). Ich hab aber hier einfach das Problem mit dem Verständnis, wie ich einen errechneten wert zurückgebe, der sozusagen in einer funktion berechnet wird und dann in einer anderen weitergegeben wird. Das ist sozusagen mehr allgemein zu verstehen. Deswegen hab ich auch nur 1-10 und co. gewählt. Ich sehe irgendwie noch nicht, wie die return arbeitet und solange muss ich leider immer alles über Global machen.

MFG

Hero2
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Vielleicht hilft das:

Code: Alles auswählen

In [2]: from random import random

In [3]: def test():
   ...:     number = random()
   ...:     print 'The number is %.2f.' % number
   ...:     return number
   ...: 

In [6]: result = test()
The number is 0.02.

In [7]: print result
0.024380243472
Antworten