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