Не получается изменить цвет пришельцев из yellow в red. Код прилагается! Я пока только учусь, не судите строго

# Создание пустого списка для хранения пришельцев.
aliens = []
# Создание 30 зеленых пришельцев.
for alien_number in range(30):
    new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
    aliens.append(new_alien) 
for alien in aliens[0:5]:
    if alien['color'] == 'green':
        alien['color'] = 'yellow'
        alien['speed'] = 'medium'
        alien['points'] = 10 ``` 
--->  elif alien['color'] == 'yellow':
        alien['color'] = 'red'
        alien['speed'] = 'fast'
        alien['points'] = 15  <---
 # Вывод первых 5 пришельцев:
 for alien in aliens[:15]:
     print(alien)
 print('...')
 # Вывод количества созданных пришельцев.
 print("Total number of aliens: " + str(len(aliens)))

Ответы (2 шт):

Автор решения: Cof. Cof.

Исходя из кода красных пришельцев быть и не должно, т.к а)elif не позволяет жёлтому пришельцу перейти в красного(заменить на if); б)Жёлтые и зелёные пришельцы больше нигде не используются. Я не могу дать более точных корректировок из-за недостатка информации, т.к я к сожалению даже не знаю с какой целью писался код. P.S Мои привилегии на форуме не позволяют оставить это в комментариях.

→ Ссылка
Автор решения: Alex_Newbie

Пример задачки из книги Мэтиза "Изучаем питон", практически полностью повторяющийся в книге, там сказано что с добавлением elif, цитирую: "Цикл можно расширить, добавив блок elif для превращения желтых пришельцев в красных — быстрых и приносящих игроку по 15 очков." На деле этот фрагмент кода как раз не работает, как задумано, поскольку elif срабатывает только, если первичное условие if не выполнилось, а оно как раз таки выполнилось и выдало true и миновало оставшуюся часть условного блока. Я новичок в изучении Питона, но могу заверить, что этот код не вызовет ошибки, но не решит поставленное условие. Поэтому исправьте меня, если я считаю, что переделать пришельцев в красный тип после жёлтого можно лишь добавив в конце блока if alien['color']='green':...... другой блок if: ...if alien['color']='yellow': alien['color']='red'... По крайней мере это работает. Профессионалы, подскажите, можно ли решить этот пример элегантнее?

→ Ссылка