求解不能得到所需结果原因
为输出以下结果:'小甲鱼',88
'黑夜',90
...
小程序:
member=['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
num=len(member)
for i in range(num):
print(member,member)
i+=2
运行结果:
小甲鱼 88
88 黑夜
黑夜 90
90 迷途
迷途 85
85 怡静
怡静 90
90 秋舞斜阳
秋舞斜阳 88
求解错在哪里?
for 会自己改变i的值的,所以不需要i += 2.
还有,去掉i += 2后,要把range的步长设置为2才行。
member=['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
num=len(member)
for i in range(0, num, 2):
print(member,member) for循环,会在开始的时候生成一个遍历列表,在循环过程中修改i不会影响对该列表的遍历
这里for i in range(num)就是i从列表中取值,在循环体内修改i没有用,下一次循环会接着从列表中取下一个值。
所以需要的是修改遍历列表,把range步长修改为2,for i in range(0,num,2)这样便利列表就变成了
member=['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
num=len(member)
for i in range(0, num, 2):
print(member,member) 本帖最后由 MIKU神仙教主 于 2020-7-13 18:13 编辑
或者可以用求余取偶数项,每次遍历只在 i = 0,2,4,6这些偶数时进行打印。
member=['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
num=len(member)
for i in range(num):
if i%2 == 0:
print(member,member)
i+=2
qiuyouzhi 发表于 2020-7-13 17:05
for 会自己改变i的值的,所以不需要i += 2.
还有,去掉i += 2后,要把range的步长设置为2才行。
谢谢 谢谢各位赐教 !
页:
[1]