Чат

Что нужно сделать

Реализуйте программу — чат, в котором могут участвовать сразу несколько человек, то есть программа может работать одновременно для нескольких пользователей. При запуске запрашивается имя пользователя. После этого он выбирает одно из действий:

  1. Посмотреть текущий текст чата.
  2. Отправить сообщение (затем вводит сообщение).

Действия запрашиваются бесконечно.

Примечание: для решения задачи вам будет достаточно текущих знаний, нужно лишь проявить немного фантазии и хитрости. Не нужно лезть в дебри работы с сетями, создания GUI-приложений и прочих штук. (Но если очень хочется, то останавливать вас никто не будет!)

Что оценивается

  • Результат вычислений корректен.
  • Основной функционал описан в отдельных функциях.
  • Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3).
  • Входные и выходные файлы названы так, как указано в задании.
  • Сообщения об ошибках осмысленные и понятные для пользователя.
with open('chat_log.txt', 'w', encoding='UTF-8') as chat:
    chat.writelines('Чат:\n')

def chat(chatfile):
    while True:
        try:
            name = input('Введите имя: ')
            act = int(input('''1 - Посмотреть текущий текст чата
2 - Отправить сообщение
Введите нужный вариант: '''))
            if act == 1:
                with open(chatfile, 'r', encoding='UTF-8') as file:
                    print(file.read())
            if act == 2:
                with open(chatfile, 'a', encoding='UTF-8') as file:
                    message = input('Сообщение: ')
                    file.writelines(f'{str(name)}: {str(message)}\n')
        except:
            print('\nДействуйте по инструкции.')

chat('chat_log.txt')