【发布时间】:2012-07-08 22:01:00
【问题描述】:
我正在尝试在 python 中循环 44100000 到 44999999 之间的数字。
我试过这个:
f=open('of','w')
i=44100000
while i<=44999999 :
f.write(str(i)+"\n")
i+=1
但它不完整! of 文件的尾部是:
44999750
44999751
44999752
44999753
449997
注意最后一个数字
- 不是范围内的最后一个数字
- 不完整!并且长度不一样!
当我再次这样做时,相同的代码给了我这个文件尾部:
44999993
44999994
44999995
44999996
44999997
44999998
第三次运行完成并正确输出:
44999994
44999995
44999996
44999997
44999998
44999999
虽然每次都能正常工作:
for i in range(44100000,44999999):
f.write('%d\n' % (i,))
有什么问题? 谢谢
【问题讨论】:
-
你关闭文件了吗?
-
或者
flush()文件缓冲区f.flush() -
哦不不不不不不不不不不不!看来你是对的;但为什么
range每次都能正常工作?谢谢 -
它显然与
range一起正常工作并不有趣。这可能是随机的机会。最好的办法是始终关闭文件 :) -
我在不关闭文件的情况下得到完全相同的结果。这一定是由于缓冲区大小造成的。
标签: python loops for-loop while-loop range