早上,使用python中的insert的用法的时候,发现这样一件事请,不论在IDLE或终端中的python,都是一样:
>>> a=[66.6,333,333,1,1234.5]
>>> a.insert(2,-1)
>>> a
[66.599999999999994, 333, -1, 333, 1, 1234.5]
为什么结果中有 66.599999999999994这么长的数字呢?我百思不得其解,是不是python看见小数点之后有数字,在结果中就无限近似了呢?但是在这个基础上输入:a.remove(66.6),得出的结果是[333, -1, 333, 1, 1234.5],为什么呢?我有些疑惑了。
晚上,开始学习modules的相关东西,没有想到一开始便遭遇到了我很头疼的问题。在编辑器中输入:
>>> def fib(n):
a,b=0,1
while b<n:
print b,
a,b=b,a+b
>>> def fib2(n):
result=[]
a,b=0,1
while b<n:
result.append(b)
a,b=b,a+b
return result
>>>
之后,保存为fibo.fy。然后再打开一个新的编辑器窗口,输入:import fibo。得到的结果让我很诧异:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "fibo.py", line 1
Python 2.5.1 (r251:54863, Oct 5 2007, 13:36:32)
^
SyntaxError: invalid syntax
为什么呢?为什么导入不成功呢?有点儿不可思议,有点儿。
[问题]2月10日 周日 大年初四,练习使用Python
- mygod12345
- 帖子: 425
- 注册时间: 2007-08-02 14:52
- 系统: 15.10
- 来自: Beijing
- 联系:
- mygod12345
- 帖子: 425
- 注册时间: 2007-08-02 14:52
- 系统: 15.10
- 来自: Beijing
- 联系:
明白了,那么导入的问题呢?为什么不成功呢?
明白了,那么导入的问题呢?为什么不成功呢?xki 写了:十进制数在python内部都是二进制存储代码: 全选
>>> a=0.3 >>> a 0.29999999999999999 >>> b=0.6 >>> b 0.59999999999999998
所以像0.3这样的数在python中只能通过使用0.29999999999999999这样最接近它的数字来表示