关于if与elif掉进循环的疑惑

 第一段代码运行后发现不是自己的预期结果,显然elif是在运行完if 的基础上对‘color’值进行判断:为什么对if执行的‘color’值,elif会在执行完if以后再次进行判断执行?

debug一步一步查看才看出来是循环的问题。

 (1)

#创建一个用于存储外星人的空列表
aliens=[]
#创建30个绿色的外星人
for alien_number in range(30):
    new_alien={'color':'green','points':5,'speed':'slow'}
    aliens.append(new_alien)
#修改前三个外星人颜色为黄色、速度为中等且值10个点
    for alien in aliens[0:3]:
        if alien['color']=='green':
            alien['color']='yellow'
            alien['points']=10
            alien['speed']='medium'
        elif alien['color']=='yellow':
            alien['color']='red'
            alien['points']=15
            alien['speed']='fast'
#显示前五个外星人(运用切片)
for alien in aliens[:5]:
    print(alien)
print("....")
#显示创建了多少个外星人
print("Total number of aliens: "+str(len(aliens)))

输出:

 

(2)

正确代码:

#创建一个用于存储外星人的空列表
aliens=[]
#创建30个绿色的外星人
for alien_number in range(30):
    new_alien={'color':'green','points':5,'speed':'slow'}
    aliens.append(new_alien)
    # 显示前五个外星人(运用切片)
for alien in aliens[:5]:
    print(alien)
print("....")
# 显示创建了多少个外星人
print("Total number of aliens: " + str(len(aliens)))
#修改前三个外星人颜色为黄色、速度为中等且值10个点
for alien in aliens[0:3]:
    if alien['color']=='green':
        alien['color']='yellow'
        alien['points']=10
        alien['speed']='medium'
    elif alien['color']=='yellow':
        alien['color']='red'
        alien['points']=15
        alien['speed']='fast'
for alien in aliens[:5]:
    print(alien)
print("....")

输出:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值