einfache Frage zu float, int, Komma

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
kame
User
Beiträge: 49
Registriert: Samstag 23. Februar 2008, 14:45
Kontaktdaten:

for x in range(1,50):
x = float(x/10)
print x

Warum liefert mir dieser Code nur
1.0
2.0
3.0

aber keine 1.1, 1.2, 1.3 etc?

Gruß kame
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

weil z.B. 16/10 -> 1 ergibt und float(1) = 1.0 ist

du willst sicherlich x/10. oder float(x)/10
[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]
theliquidwave
User
Beiträge: 221
Registriert: Sonntag 1. Juni 2008, 09:08

Weil Python nur mit ganzen Zahlen rechnet, außer du gibst es implizit an:

Code: Alles auswählen

x = float(x) / 10
Oder du importierst

Code: Alles auswählen

from __future__ import division
oder so etwas ^^

~ Chris
Grüßle.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

jbs hat geschrieben:du willst sicherlich x/10. oder float(x)/10
Alternativ geht auch ``x / 10.0``, wenn man schon Literale verwendet, kann man sie auch nuetzen.

Die richtige Division zu importieren ist natuerlich die beste Loesung.

Edit: Einen Punkt uebersieht man schnell ... sry jbs :oops:
Zuletzt geändert von cofi am Montag 21. September 2009, 16:31, insgesamt 1-mal geändert.
kame
User
Beiträge: 49
Registriert: Samstag 23. Februar 2008, 14:45
Kontaktdaten:

Vielen Dank!
Antworten