第一段代码运行后发现不是自己的预期结果,显然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)))

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

 

(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("....")

输出:

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

相关文章:

  • 2022-01-10
  • 2022-12-23
  • 2021-09-17
  • 2022-12-23
  • 2021-08-05
  • 2021-07-06
  • 2021-08-02
  • 2022-02-05
猜你喜欢
  • 2022-12-23
  • 2021-11-13
  • 2021-08-04
  • 2022-02-17
  • 2022-03-01
  • 2022-12-23
  • 2022-01-08
相关资源
相似解决方案