【发布时间】:2016-04-04 23:01:37
【问题描述】:
我正在阅读一本用 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 的所有数字都重复一次。所以我将count 更改为i,但没有任何区别。
显然我的尝试都没有在 50 处停止...
感谢您提前提出的所有意见
【问题讨论】:
-
我不太明白这个问题。前两个代码块将输出完全相同的数字(循环中
print调用中的 0-9,最后是1000,因为您正在计算所有值,而不仅仅是您正在打印的值)。如果不使用不同的range(或者在不重置count的情况下多次运行循环),我看不出你如何获得高于 1000 的数字。
标签: python-3.x for-loop