|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
各位好!关于010课后练习动动手最后一个:
答案中第一种方案用的while,
member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
count = 0
length = len(member)
while count < length:
print(member[count], member[count+1])
count += 2
这边意思我理解了,但是我在想如果如下:
for i in range(len(member)):
if i<= len(member) -1:
print (member[i],member[i+1])
i +=2
if i >len(member) -1:
break
结果是:
小甲鱼 88
88 黑夜
黑夜 90
90 迷途
迷途 85
85 怡静
怡静 90
90 秋舞斜阳
秋舞斜阳 88
为什么定义了i +=2并没有起到限定作用呢?
谢谢帮助先!
你的程序能解决问题,但是你的解释是不清楚的。
for循环会用 i 对可遍历对象逐个遍历,
他的程序中在for循环语句块内修改 i 不影响 i 对原可遍历对象的遍历,也就是每次循环 i 都会从列表中读取下一个元素,不管在for循环语句块中对 i 进行什么操作。
所以他的程序才会得到那个结果。
实例说话,开始for循环会得到i从0~9进行遍历
第一次循环 i=0,得到 '小甲鱼',在循环体内i进行了 i+=2,此时 i=2 ,但它不影响下一次循环i的赋值;
第二次循环 i=1,得到 '88',在循环体内i进行了 i+=2,此时 i=3 ,但它不影响下一次循环i的赋值;
……
需要修改的是循环开始时的遍历对象
- member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
- for i in range(0,len(member),2):#range(0,10,2)遍历对象变成了:0 2 4 6 8
- print (member[i],member[i+1])
复制代码
|
|