"""
3.4. Список гостей: если бы вы могли пригласить кого угодно (из живых или умерших)
на обед, то кого бы вы пригласили? Создайте список, включающий минимум трех людей,
которых вам хотелось бы пригласить на обед. Затем используйте этот список для вывода
пригласительного сообщения каждому участнику.
"""
guests = ['number1', 'number2', 'number3', 'number4', 'number5']
message = f'Добро пожаловать на праздник, '
for x in guests:
    print(message + x.title(), sep='\n')

print('___________________________________________________________________________________________________________')
"""
3.5. Изменение списка гостей: вы только что узнали, что один из гостей прийти не сможет,
поэтому вам придется разослать новые приглашения. Отсутствующего гостя нужно заменить кем-то другим.
•Начните с программы из упражнения 3.4. Добавьте в конец программы команду print для вывода имени
гостя, который прийти не сможет.
•Измените список и замените имя гостя, который прийти не сможет, именем нового приглашенного.
•Выведите новый набор сообщений с приглашениями — по одному для каждого участника, входящего в список.
"""
guests_old = guests.pop().title()
message1 = f'К сожалению на праздник не сможет прийти {guests_old}!'
print(message1)


guests.append('number6')
message2 = f'Вместо {guests_old} к нам придет {guests[4].title()}!'
print(message2)

for x in guests:
    print(message + x.title(), sep='\n')

print('___________________________________________________________________________________________________________')

"""
3.6. Больше гостей: вы решили купить обеденный стол большего размера.
Дополнительные места позволяют пригласить на обед еще трех гостей.
•Начните с программы из упражнения 3.4 или 3.5. Добавьте в конец программы команду print,
которая выводит сообщение о расширении списка гостей.
•Добавьте вызов insert() для добавления одного гостя в начало списка.
•Добавьте вызов insert() для добавления одного гостя в середину списка.
•Добавьте вызов append() для добавления одного гостя в конец списка.
•Выведите новый набор сообщений с приглашениями — по одному для каждого участника, входящего в список.
"""
print('Уважаемые гости к нам пришли наши новые друзья!')
guests.insert(0, 'number7')
guests.insert(4, 'number8')
guests.insert(7, 'number9')

for x in guests:
    print(message + x.title(), sep='\n')

print(guests)

print('___________________________________________________________________________________________________________')
"""
3.7. Сокращение списка гостей: только что выяснилось, что новый обеденный
стол привезти вовремя не успеют и места хватит только для двух гостей.
•Начните с программы из упражнения 3.6. Добавьте команду для вывода сообщения о том,
что на обед приглашаются всего два гостя.
•Используйте метод pop() для последовательного удаления гостей из списка до тех пор,
пока в списке не останутся только два человека. Каждый раз, когда из списка удаляется очередное имя,
выведите для этого человека сообщение о том, что вы сожалеете об отмене приглашения.
•Выведите сообщение для каждого из двух человек, остающихся в списке. Сообщение должно подтверждать,
что более раннее приглашение остается в силе.
•Используйте команду del для удаления двух последних имен, чтобы список остался пустым.
Выведите список, чтобы убедиться в том, что в конце работы программы список действительно не содержит
ни одного элемента.
"""
print('Новый обеденный стол привезти вовремя не успеют и места хватит только для двух гостей')

message3 = f'К сожалению на праздник не сможет прийти '
while len(guests) > 2:
    print(message3 + guests.pop().title(), sep='\n')
print('Осталось 2 гостя')

print(guests)

message4 = f'Предложение остается в силе для '
for x in guests:
    print(message4 + x.title(), sep='\n')

del guests[0]
del guests[0]

print(guests)

print('___________________________________________________________________________________________________________')
