变量和python中不完整的行为“for”循环

时间:2012-07-09 13:36:36

标签: python loops for-loop while-loop range

我正试图在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

注意最后一个数字

  1. 不是
  2. 范围内的最后一个数字
  3. 不完整!并且与其他人的长度不一样!
  4. 当我再次这样做时,相同的代码给了我这个文件的尾部:

    44999993
    44999994
    44999995
    44999996
    44999997
    44999998
    

    并且第三次运行完成了&amp;纠正出来:

    44999994
    44999995
    44999996
    44999997
    44999998
    44999999
    

    虽然每次都能正常工作:

    for i in range(44100000,44999999):
         f.write('%d\n' % (i,))
    

    有什么问题? 感谢

1 个答案:

答案 0 :(得分:7)

在终止进程之前无法关闭文件。优良作法是在with语句中使用需要清理的资源:

with open('of', 'w') as f:
    f.write("Stuff")

# f.close() will be called automatically upon leaving the with-scope