a =(random.random(),random.random())
打印(a)中
打印(A [0])
结果是:
(0.4817527913069962,0.7017598562799067)
0.481752791307
打印元组后会发生什么额外的事情(列表的类似行为)?为什么会有额外的分数?
非常感谢。
顺便说一下,这是python 2.7答案 0 :(得分:4)
您看到的是str(float)
和repr(float)
所做的格式选择之间的区别。在Python 2.x中,str(float)
返回12位数,而repr(float)
返回17位数。在交互模式下,Python使用str()
来格式化结果。这可以解释格式化浮点数时的12位精度。但是当结果是元组或列表时,字符串格式化逻辑使用repr()
来格式化每个元素。
repr(float)
的输出必须能够转换回原始值。使用17位数的精度保证了这种行为。 Python 3使用更复杂的算法,返回最短的字符串,该字符串将往返回原始值。由于repr(float)
经常会返回更友好的结果,因此str(float)
已更改为与repr(float)
相同。