(Un)Logik von Python: Gibt bei gleichen Werten False aus
Verfasst: Donnerstag 5. April 2007, 18:12
Sry, dass ich heute noch einen Thread öffne. Aber diesesmal habe ich kein Problem mit der Programmierung, sondern mit der internen Logik von Python.
Folgender Code führt mich zu der Annahme das Python spinnt oder aber ich die Logik eben nicht verstanden habe:
Das ist doch total besch... und der Umstand dass 0,175 ungleich 0,175 ist, macht mir mein Programm zunichte
.Wieso macht Python das???
Ich nehme nicht an dass es mit der Software und Umgebung zu tun hat, aber ich nutze matplotlib 0.90.0 mit Python 2.5 in der IDLE unter Win Xp.
Danke für jeden Hinweis schon mal im Voraus.
Ein verzweifelter Mauli
Folgender Code führt mich zu der Annahme das Python spinnt oder aber ich die Logik eben nicht verstanden habe:
Code: Alles auswählen
import pylab as pl
x = pl.arange(1/360., 60, 1/360.)
y = pl.arange(1/200., 60, 1/200.)
# Zur Veranschaulichung ein Abschnitt aus jeder Sequenz:
x[60:64]
# out: array([ 0.16944444, 0.17222222, 0.175 , 0.17777778])
y[32:36]
# out: array([ 0.165, 0.17 , 0.175, 0.18 ])
y[34]
# out: 0.175
x[62]
# out: 0.175
type(x[62])
# out: <type 'numpy.float64'>
type(y[34])
#out: <type 'numpy.float64'>
x[62]==y[34]
#out: FALSE <-----------Wieso??
# Aber bei allen anderen, kleineren gemeinsammen Teilern, z.B. 0.15:
x[53]
# out: 0.15
y[29]
# out: 0.15
x[53]==y[29]
# out: TRUE <------------ ???

Ich nehme nicht an dass es mit der Software und Umgebung zu tun hat, aber ich nutze matplotlib 0.90.0 mit Python 2.5 in der IDLE unter Win Xp.
Danke für jeden Hinweis schon mal im Voraus.
Ein verzweifelter Mauli
