我的python ide坏了吗?
import sys
i = 0
sample = ("this", "is", "Annoying!")
for line in sample:
print i, line
i + 1
现在给我......
0 this 0 is 0 Annoying!
我想,它会给我:
1 this 2 is 3 Annoying
我还有其他正在处理的脚本,而且它们都破坏了 - 当使用for语句打印多次迭代时,它们都具有相同的行号 - 有人可以告诉我发生了什么 - 非常沮丧大笑...... Python打破了吗?我需要睡觉吗?这有什么不对?
答案 0 :(得分:10)
虽然其他答案是正确的,但这是你通常在python中执行此操作的方法:
sample = ("this", "is", "Annoying!")
for i, line in enumerate(sample):
print i, line
enumerate
函数完全符合您的要求:迭代您的元组,同时为您提供(行)数字。
答案 1 :(得分:7)
您正在计算i+1
,但不会将结果存储在任何位置。具体而言,您没有更新i
以包含新值。请改用i = i + 1
或i += 1
。
答案 2 :(得分:4)
这对我来说很好用:
>>> import sys
>>> i = 0
>>> sample = ("abc", "def", "ghi")
>>> for line in sample:
... i = i + 1
... print i, line
...
1 abc
2 def
3 ghi
您确定要增加并存储值i
吗? (你的例子省略了这个,但在另一个答案中你说你确实放了i = i + 1
。)请记住,Python是对空格敏感的,所以如果你做了这样的事情,结果将不是你所期望的:
>>> for line in sample:
... print i, line
... i = i + 1 # <-- This is not part of the loop!
答案 3 :(得分:4)
我怀疑你有一个缩进问题,也许i = i + 1语句在某种程度上不是for循环的一部分。
但是,不要做自己的计数器递增,更好的做法是使用枚举:
for i,line in enumerate(sample):
print i,line
答案 4 :(得分:3)
问题是你在做“i + 1”,而不是“i = i + 1”
答案 5 :(得分:2)
您没有在代码中增加变量i
,您需要执行以下操作:
for line in sample:
i = i + 1
print i, line
答案 6 :(得分:2)
您期望的结果将通过使用枚举:
获得sample = ("this", "is", "Annoying!")
for index, line in enumerate(sample):
print index, line
我不知道你发布的代码在任何版本的Python中都有用。
答案 7 :(得分:0)
只需单步执行调试程序即可查看执行情况。