为什么我这个代码输出之后就是第2,4,6,8,10 个偶数?

为什么我这个代码输出之后就是第2,4,6,8,10 个偶数?

# 根据任务要求,按步骤实现最终的运行结果
numList = [1,2,3,4,5,6,7,8,9,10]
i = 1 
for num in numList:
    if num % 2 == 0:
        print ("第{}个偶数{}". format(i, num) )
    i += 1

我和别的同学的答案对比了一下,没发现哪里有问题

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
终极咸鱼王 2019-07-07 15:12:03

你后面那个 i += 1 放到 if 判断条件里就行了。

# 根据任务要求,按步骤实现最终的运行结果
numList = [1,2,3,4,5,6,7,8,9,10]
i = 1
for num in numList:
    if num % 2 == 0:
        print ("第{}个偶数{}". format(i, num) )
        i += 1

这样输出之后就是:

第1个偶数2

第2个偶数4

第3个偶数6

第4个偶数8

第5个偶数10


慕之熠_灿烈 2019-07-05 10:39:01

同学,您好。

因为在每一次遍历后,format( )中的第一个参数i都进行了+1操作,而i的初始值为1,所以在遍历numList时候会产生满足num%2==0但下标值不匹配的情况。您可参照以下代码加以纠正:

http://img1.sycdn.imooc.com//climg/5d1eb79e000143e113280555.jpg

图中红色方框内的numList.index(num)是Python的List(列表)的内置方法,可以获取指定参数的下标,正好可以实现获取每一次遍历的num对应的下标的功能。

如果我的回答解决了您的疑惑,望采纳!!^_^ 祝学习愉快~~~~~

  • 提问者 公子正 #1
    我昨天问完之后就自己想通了,我那个i自增加1应该是和Print函数并列就对了,不然就是会直接自增加1
    2019-07-05 10:48:35
  • 慕之熠_灿烈 回复 提问者 公子正 #2
    是的 这样写是多了一行代码 但是也是正确实现了需求。继续加油!!
    2019-07-05 11:26:23
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师