У меня есть эта функция (см. Ниже), которая принимает несколько значений и возвращает кортеж. Если я печатаю значения кортежа, используя для этого индексы (например, tuple [0], tuple [1] и т. Д.), То напечатанное значение будет правильным. Но если я просто печатаю кортеж или печатаю функцию, то получаю некоторые сумасшедшие значения (иногда).
Вот код:
import math
def getvector(x1,y1,length,angle):
x1 = float(x1)
y1 = float(y1)
length = float(length)
angle = float(angle)
x2 = x1 + (length * math.cos(math.radians(angle)))
y2 = y1 + (length * math.sin(math.radians(angle)))
print "in getvector x2,y2 = (%f, %f)" % (x2,y2)
return (x2,y2)
xy2 = getvector(0,0,4,270)
print "in main x2,y2 = (%f, %f)" % (xy2[0],xy2[1])
print getvector(0,0,4,270)
print "tuple =", xy2
И результат:
in getvector x2,y2 = (-0.000000, -4.000000)
in main x2,y2 = (-0.000000, -4.000000)
in getvector x2,y2 = (-0.000000, -4.000000)
(-7.3478807948841188e-16, -4.0)
tuple = (-7.3478807948841188e-16, -4.0)
Есть идеи, что происходит ?? Почему значения отличаются, когда я печатаю кортеж напрямую?