鱼C论坛

 找回密码
 立即注册
查看: 1611|回复: 3

[已解决]这能看出哪点没学通?

[复制链接]
发表于 2022-1-7 17:25:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#创建一个用于存储方形人的列表
aliens = []
#创建30个外星人
for alien_number in range(30):
    new_alien = {'color':'green', 'points':5, 'speed':'slow'}
    aliens.append(new_alien)
#修改前三个外星人颜色分值速度
for alien in aliens[:4]:
    if alien['color'] == 'green':
        alien['color'] = 'yellow'
        alien['points'] = 1111
        alien['speed'] = 'medium'
        #将黄色改为快速15分红色
        for alien in aliens[:4]:
            if alien['color'] == 'green':
                alien['color'] = 'yellow'
                alien['points'] = 2
                alien['speed'] = 'medium'
            elif alien['color'] == 'yellow':
                alien['color'] = 'red'
                alien['points'] = 3
                alien['speed'] = 'fast'

   
#显示前五个外星人
for alien in aliens[:10]:
    print(alien)
print('...')
#显示创建了多少个外星人
print(f'Total number of aliens:{len(aliens)}')

忽略注释··
=========== RESTART: C:\Users\Administrator\Desktop\python\aliens.py ===========
{'color': 'red', 'points': 3, 'speed': 'fast'}
{'color': 'yellow', 'points': 2, 'speed': 'medium'} 为什么这三行的结果不是red 3
{'color': 'yellow', 'points': 2, 'speed': 'medium'}为什么这三行的结果不是red 3
{'color': 'yellow', 'points': 2, 'speed': 'medium'}为什么这三行的结果不是red 3
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
...
Total number of aliens:30
最佳答案
2022-1-7 20:29:36
123456123456a 发表于 2022-1-7 17:26
嵌套FOR循环 如果改成4切片  为什么结果不是red 4 这个说明我哪没学通???

你代码中有两个for循环,里面那个是在if 语句下的,只要if 不执行,for循环也不执行
你外层循环第一轮后前4个 为 红 黄黄黄,只要之后的if条件都不会执行,把里层for缩进左移一下就好了
  1. # 创建一个用于存储方形人的列表
  2. aliens = []
  3. # 创建30个外星人
  4. for alien_number in range(30):
  5.     new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
  6.     aliens.append(new_alien)
  7. # 修改前三个外星人颜色分值速度
  8. for alien in aliens[:4]:
  9.     if alien['color'] == 'green':
  10.         alien['color'] = 'yellow'
  11.         alien['points'] = 1111
  12.         alien['speed'] = 'medium'
  13.         # 将黄色改为快速15分红色
  14.     for alien in aliens[:4]:
  15.         if alien['color'] == 'green':
  16.             alien['color'] = 'yellow'
  17.             alien['points'] = 2
  18.             alien['speed'] = 'medium'
  19.         elif alien['color'] == 'yellow':
  20.             alien['color'] = 'red'
  21.             alien['points'] = 3
  22.             alien['speed'] = 'fast'
  23. # r y y y


  24. # 显示前五个外星人
  25. for alien in aliens[:10]:
  26.     print(alien)
  27. print('...')
  28. # 显示创建了多少个外星人
  29. print(f'Total number of aliens:{len(aliens)}')
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-1-7 17:26:37 | 显示全部楼层
嵌套FOR循环 如果改成4切片  为什么结果不是red 4 这个说明我哪没学通???
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-7 20:29:36 | 显示全部楼层    本楼为最佳答案   
123456123456a 发表于 2022-1-7 17:26
嵌套FOR循环 如果改成4切片  为什么结果不是red 4 这个说明我哪没学通???

你代码中有两个for循环,里面那个是在if 语句下的,只要if 不执行,for循环也不执行
你外层循环第一轮后前4个 为 红 黄黄黄,只要之后的if条件都不会执行,把里层for缩进左移一下就好了
  1. # 创建一个用于存储方形人的列表
  2. aliens = []
  3. # 创建30个外星人
  4. for alien_number in range(30):
  5.     new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
  6.     aliens.append(new_alien)
  7. # 修改前三个外星人颜色分值速度
  8. for alien in aliens[:4]:
  9.     if alien['color'] == 'green':
  10.         alien['color'] = 'yellow'
  11.         alien['points'] = 1111
  12.         alien['speed'] = 'medium'
  13.         # 将黄色改为快速15分红色
  14.     for alien in aliens[:4]:
  15.         if alien['color'] == 'green':
  16.             alien['color'] = 'yellow'
  17.             alien['points'] = 2
  18.             alien['speed'] = 'medium'
  19.         elif alien['color'] == 'yellow':
  20.             alien['color'] = 'red'
  21.             alien['points'] = 3
  22.             alien['speed'] = 'fast'
  23. # r y y y


  24. # 显示前五个外星人
  25. for alien in aliens[:10]:
  26.     print(alien)
  27. print('...')
  28. # 显示创建了多少个外星人
  29. print(f'Total number of aliens:{len(aliens)}')
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-7 20:30:08 | 显示全部楼层
{'color': 'red', 'points': 3, 'speed': 'fast'}
{'color': 'red', 'points': 3, 'speed': 'fast'}
{'color': 'red', 'points': 3, 'speed': 'fast'}
{'color': 'red', 'points': 3, 'speed': 'fast'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
...
Total number of aliens:30
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-24 23:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表