[Python-de] Anfängerfrage

Gregor Lingl glingl at aon.at
Son Feb 13 19:40:42 CET 2005


Hallo Uwe, Hallo Marek!

Marek Kubica schrieb:
> On Sun, 13 Feb 2005 17:40:03 +0100
> Uwe Eggert <ueggert at cityweb.de> wrote:
> 
> 
>>Die Funktion selbst erhält also einen Wert.
>>Mein in Versuch in Python gelang aber nicht:
>>
>>def meter_kilometer (meter):
>>	meter_kilometer=meter/1000
>>
>>print "Meter_kilometer", meter_kilometer(1000)
> 
> 
> 
>>Gibt es sowas in  Python gar nicht ?
> 
> Doch, klar, sonst hätte Python keinen Funktionen, nur Methoden.

*Dieses* Argument stimmt nicht, denn der Unterschied zwischen
Methoden und Funktionen liegt *nicht* darin ob sie einen Rückgabewert
haben.

> Aber Python hat eigentlich keine Methoden sondern nur Funktionen! 

??? So kann man das wohl nicht sagen ...

> So
> gibt deine Funktion keinen Rückgabewert mit return zurück, also ist der
> Rückgabewert None.
> 
> def meter_kilometer(meter):
>     return meter / 1000

Hier tritt ein weiteres Problem auf: Ganzzahldivision.
Wenn nämlich Meter als ganze Zahl eingegeben wird, dann
liefert meter/1000 den ganzzahligen Quotienten zurück:

Beispiel:

 >>> meter = 3500
 >>> meter/1000
3
 >>> meter = 800
 >>> meter/1000
0
 >>> meter/1000.0        # Uzak S. 47
0.80000000000000004
 >>> float(meter)/1000   # Uzak S. 48
0.80000000000000004
 >>>

Von der 4 ganz hinten lass dich nicht irritieren (wenn doch -
frag nach!), denn

 >>> print meter/1000.0
0.8

Wenn du z. B. für das Argument 3500 Meter das Ergebnis 3.5
erzielen wolltest, müßtest du also durch 1000.0
dividieren.

> 
> 
>>"Das Einsteigerseminar Python 2.x" von Uzak geht auf diese Problematik
>>nicht  ein.

Das "Einsteigerseminar Python 2.x" von Uzak geht auf diese Problematik
natürlich schon ein, und zwar zum ersten Mal auf Seite 81.

Beste Grüße
Gregor

> 
> grep -i 'return'
> 
> grüße,
> Marek
> 
> _______________________________________________
> python-de maillist  -  python-de at python.net
> http://python.net/mailman/listinfo/python-de
> 
> 
-- 
Gregor Lingl
Reisnerstrasse 3/19
A-1030 Wien

Telefon: +43 1 713 33 98
Mobil:   +43 664 140 35 27

Autor von "Python für Kids"
Website: python4kids.net