我有這個函數(見下文)接受幾個值並返回一個元組。如果我使用索引打印元組的值(例如元組[0],元組[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)
任何想法是怎麼回事?爲什麼直接打印元組時值不同?