[Python-de] Warum liefert // ein float?

Florian Lindner mailinglists at xgm.de
Do Apr 6 05:02:59 EDT 2017



Am 06.04.2017 um 10:12 schrieb Christopher Arndt:
> Am 06.04.2017 um 09:52 schrieb Florian Lindner:
>> Warum liefert // ein float zurück, obwohl das Ergebnis, immer eine eine Ganzzahl ist (in dem Sinne, dass es keine
>> Nachkommestellen hat)?
> 
> Der Grund ist die Python Type Coercion. Bei Operationen mit
> unterschiedlichen Typen der Argumente, werden beide vor der Operation zu
> einem gemeinsamen, kompatiblen Typ konvertiert, der dann auch den Typ
> des Ergebnisses bestimmt.
> 
> Daher auch:
> 
> 10 // 3 == 3

aber:

>>> type(6 / 3)
<class 'float'>

siehe https://www.python.org/dev/peps/pep-0238/

Finde es so auch logisch, also 6 / 3 -> float.

Fände es aber umgedreht auch logischer, wenn 6.0 // 3.0 -> int, da (. // .) prinzipiell eine Ganzzahl zurückgibt.

Grüße,
Florian

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://mail.python.org/pipermail/python-de/attachments/20170406/b6b3fe79/attachment.sig>


Mehr Informationen über die Mailingliste python-de