python 3.x for循环没有停在所需的值

时间:2016-04-04 23:01:37

标签: python-3.x for-loop

我正在阅读用Python 2.x编写的初学者书,但我决定使用3.5

这本书是关于数据争论的,当使用库xlrd阅读Excel文件时,它提供了Counters如何工作的快速示例:

count = 0
for i in range(1000):
    if count < 10;
        print i
    count += 1
print 'Count: ', count

首先,我知道Python 3.x print实际上是print()而且我也知道2.x range(1000)在3.x中是不一样的

所以我设法运行代码没有错误但没有得到所需的结果:

count = 0
my_list = list(range(1000))
for i in my_list:
    if count < 50:
        print(i)
    count += 1
print(count)

结果是从1001到2000的数字。显然不是我的意思,所以它让我思考如果+=对于3.x是相同的但是找不到太多信息,所以我试过(至少对我而言)逻辑方式:

count = 0
my_list = list(range(1000))
for i in my_list:
    if count < 50:
        print(i)
    count = count + 1
print(count)

但现在结果是从0到1000的所有数字但是从1到49的所有数字都重复一次。所以我更改了counti,但没有任何区别。

显然,我的尝试都没有停止在50 ......

我提前感谢所有输入

1 个答案:

答案 0 :(得分:0)

我认为你的困惑源于你的for循环结束时的递增计数。

如果你在范围(5)中为k执行它的方式...计数器将从0一直增加到5,因为它在每次迭代时增加一次超过它的值。

运行此代码将播下计数高于循环中的itterating变量k的计数。 print(“Hello World!”);

count = 0 
for k in range(5):
    print("k: "+str(k))
    print("count: "+str(count))
    count+=1
    print("countNow: "+str(count))