def und return wirft nichts aus

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.
muskel
User
Beiträge: 6
Registriert: Sonntag 9. November 2008, 19:12

Äääähm, danke erstmal an alle! :lol:
Ja, unser Professor (!) überspringt gerne mal die ein oder andere Zeile beim Erklären, oder sie tauchen gar nicht erst auf den Folien auf. "Es geht ja nur um die Theorie" betont er immer, allerdings müssen wir für die Klausur die Praxis können... :roll:

So fehlt eigentlich "IMMER" die print-anweisung am Ende seiner Beispiele. Und in meinem Fall sollte, wie hier ja einige Leute mir glücklicherweise erklärt haben, die definition nochmal durch den print-befehl aufgerufen werden. Klar, muss ja so sein! :D

Ich glaube, mein Versagen bestand im Wesentlichen darin, die Funktion des "return" befehls nicht genau zu kennen. Ich meine: Was heißt denn schon "Rückgabewert" und warum wird die Funktion dann nicht nochmal mit dem neuen Wert durchlaufen? Habe ich alles schlecht erklärt bekommen. :cry:
Aber Dank dem Internet bin ich schlauer geworden:

return gibt einen Wert aus der Funktion an die aufrufende Stelle zurück. Dabei wird die Funktion sofort beendet....
...und wenn ich DANN mein print erfolgen lasse, wird das Ergebnis, was ich ja so dringend haben will, auch ausgeworfen.

*erleuchtet sei* :wink:

Ich war übrigens kurz davor, dass Ganze zu umgehen und durch:

Code: Alles auswählen

a=585 
b=75 

while b > 0: 
   rest = a % b 
   a = b 
   b = rest 
else:
   print a
auszudrücken. Klappt schließlich auch irgendwie... :P
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Leonidas hat geschrieben:
numerix hat geschrieben:Und ich finde es ebenso unproblematisch, einen Anfänger input() benutzen zu lassen und ihn zu gegebener Zeit auf die Problematik hinzuweisen.
Wann ist gegebene Zeit? Wenn er ein mehrere Tausend Zeilen langes Programm fertig und deployt hat und dann ein kleines Problem hat und sich rausstellt dass sein Programm hunderte ``inputs()`` hat? Ich nehme jetzt nicht an, dass du bei jedem Anfänger immer dabeistehst und guckst was sie machen. Daher bin ich dafür Anfängern *so früh wie möglich* guten Stil beizubringen.
Ja, das ist sicher eine uneindeutige Formulierung mit der "gegebenen Zeit", aber eindeutiger scheint mir das auch nicht formulierbar zu sein. In der Tat ist das ein Punkt, über den man diskutieren könnte, nämlich, wann dieser Zeitpunkt gekommen ist. Möglicherweise kommen wir da zu unterschiedlichen Einschätzungen, weil unser Erfahrungshorizont ein anderer ist.

Aber, mal ehrlich: Wer Programme mit "hunderten inputs()" schreibt, der dürfte über den Punkte "input()" oder "raw_input()" doch wohl lange hinweg sein. Ich kann mir überhaupt so ein Programm nicht vorstellen (auch nicht mit 100x raw_input()) ...
snafu hat geschrieben:Heißt das du führst deine Kritik nur an, um andere Leute auf die Palme zu bringen? Ganz großes Tennis...
Wie du darauf jetzt kommst, weiß ich nicht. Ansonsten: Siehe Beitrag von lunar dazu.
BlackJack

@numerix: Also ich kann mir schon Anfängerprogramme mit 100erten von `input()`\s vorstellen. Das sind die Leute, die das mit Gemeinsamkeiten in Funktionen auslagern und/oder Schleifen nicht verstanden haben und letztendlich zig mal den gleichen Quelltext per Kopieren und Einfügen "schreiben". :-)

@sea-live: Yeah! BASIC forever :!: 8)

Code: Alles auswählen

   10 a=585:b=75
   20 rem if a<b then t=a:a=b:b=t
   30 if b=0 then print a:end
   40 r=a-int(a/b)*b:a=b:b=r:goto 30
@muskel: Schau Dir in dem BASIC-Programm mal die auskommentierte Zeile an (``rem``) und denk darüber nach.
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

@ BlackJack DANKE
mein robotter läuft unter basic (Bascom) stabiler als unter GCC
gibt es eigentlich für python auch einen atmel compiler!!!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

sea-live hat geschrieben:mein robotter läuft unter basic (Bascom) stabiler als unter GCC
Also unter einer Banane blauer als Wolke? Kann ich absolut verstehen, das habe ich hier auch oft!

muskel, da gibt es nichts zu meckern, ihr hättet ja auch auf einem Prof. treffen können der Codebeispiele grundsätzlich in Pseudocode schreibt (der dann, da er nicht testbar ist) durchaus mal falsch sein kann und der euch funktionale Programmierung mit Java beibringen will. Insofern ist dass das ``print`` fehlt kein Problem, wenn du ein Python-Tutorial (oder Java-Tutorial), dann wirst das in der Vorlesung wohl kaum bekommen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten