Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 22.10.2021
Сообщений: 10

Рассылка результатов

13.12.2021, 23:00. Показов 3772. Ответов 3

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста, решить задачу

Преподаватель Елена Семеновна в конце семестра подсчитывает итоговую оценку и делает рассылку, где сообщает каждому студенту оценку, а несдавшим сообщает дату пересдачи. Оценка считается по такому правилу: накопленная оценка считается с коэффициентом 0.4, оценка за экзамен считается с коэффициентом 0.6, результат округляется.

Напишите программу, которая посчитает итоговые оценки и сгенерирует тексты рассылок для Елены Семеновны.

ФОРМАТ ВВОДА

Структурированный файл students.csv в кодировке utf-8, где на каждой строке содержится информация о студенте, разделенная точкой с запятой: имя студента, адрес его электронной почты, накопленная оценка и оценка за экзамен по 10-балльной шкале.
ФОРМАТ ВЫВОДА

Текстовый файл emails.txt в кодировке utf-8, где для каждого студента записан текст для рассылки в следующем формате:
"To: <адрес электронной почты>
Добрый день, <имя студента>!
Ваша итоговая оценка за курс - <оценка>."

Далее для сдавших экзамен (получивших оценку 4 и выше) пишется строка "Хороших каникул!", а для несдавших - "Пересдача состоится 15 января в 10:00, место будет сообщено позднее."

Рассылки должны быть записаны в файл в том же порядке, в каком имена студентов встречаются во входном файле.
Для округления итоговой оценки используйте функцию round()
ДОПОЛНИТЕЛЬНО

В открытом тесте используются файлы students.csv и emails.txt. Вы можете скачать их и проверить свое решение локально.
В примере в первой колонке отображается номер теста (0 — открытый тест), считывать это число или использовать его в вашем решении не нужно.

Для примера:
Тест
0

Результат
FILE: To: ivanov@hse.ru
Добрый день, Иван Иванов!
Ваша итоговая оценка за курс - 6.
Хороших каникул!
To: petrov@hse.ru
Добрый день, Петр Петров!
Ваша итоговая оценка за курс - 9.
Хороших каникул!
To: kuznetsova@hse.ru
Добрый день, Мария Кузнецова!
Ваша итоговая оценка за курс - 8.
Хороших каникул!
To: smirnova@hse.ru
Добрый день, Татьяна Смирнова!
Ваша итоговая оценка за курс - 7.
Хороших каникул!
To: akhmetov@hse.ru
Добрый день, Камиль Ахметов!
Ваша итоговая оценка за курс - 7.
Хороших каникул!
To: sonina@hse.ru
Добрый день, Софья Сонина!
Ваша итоговая оценка за курс - 10.
Хороших каникул!
To: andreev@hse.ru
Добрый день, Андрей Андреев!
Ваша итоговая оценка за курс - 3.
Пересдача состоится 15 января в 10:00, место будет сообщено позднее.
To: khismatullina@hse.ru
Добрый день, Алина Хисматуллина!
Ваша итоговая оценка за курс - 3.
Пересдача состоится 15 января в 10:00, место будет сообщено позднее.
To: semenov@hse.ru
Добрый день, Семен Семенов!
Ваша итоговая оценка за курс - 7.
Хороших каникул!
To: makarov@hse.ru
Добрый день, Макар Макаров!
Ваша итоговая оценка за курс - 7.
Хороших каникул!
To: vasilieva@hse.ru
Добрый день, Василиса Васильева!
Ваша итоговая оценка за курс - 6.
Хороших каникул!
To: korneev@hse.ru
Добрый день, Корней Корнеев!
Ваша итоговая оценка за курс - 2.
Пересдача состоится 15 января в 10:00, место будет сообщено позднее.
To: timofeev@hse.ru
Добрый день, Тимофей Тимофеев!
Ваша итоговая оценка за курс - 9.
Хороших каникул!
To: katina@hse.ru
Добрый день, Екатерина Катина!
Ваша итоговая оценка за курс - 4.
Хороших каникул!
To: lenina@hse.ru
Добрый день, Елена Ленина!
Ваша итоговая оценка за курс - 6.
Хороших каникул!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.12.2021, 23:00
Ответы с готовыми решениями:

Рассылка
Добрый день. учу змеюку.. пока не очень получаеться. есть задача: СУТЬ: Есть файлик (формат не важен, но пусть будет xls) в...

Рассылка
нужна помощь в создании бота,который может отправлять одно и тоже сообщение одновременно с разных аккаунтов

СМС-рассылка
Для создания смс-рассылки напишите классы Person и Company, а также функцию send_sms. Объект класса Person при инициализации принимает...

3
enx
 Аватар для enx
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
14.12.2021, 03:50
GUY_exe, имена файлов поменять не забудь.


Python
1
2
3
4
5
6
7
8
9
with open('__test_in.csv', encoding='utf-8') as file1, open('__test_out.txt', 'w', encoding='utf-8') as file2:
    for line in file1.read().split('\n'):
        name, mail, total, exam = map(lambda x: int(x) if x.isdigit() else x, line.split(';'))
        res = round(total * 0.4 + exam * 0.6)
        txt = f'To: {mail}\n' \
              f'Добрый день, {name}!\n' \
              f'Ваша итоговая оценка за курс - {res}.\n' \
              f'{("Пересдача состоится 15 января в 10:00, место будет сообщено позднее.", "Хороших каникул!")[res >= 4]}'
        file2.write(txt + '\n')
0
1 / 1 / 0
Регистрация: 28.02.2023
Сообщений: 24
19.03.2023, 21:29
не проходит скрытые тесты.
как
Проверить условие: если итоговая оценка меньше 4, то допечатать текст Пересдача состоится 15 января в 10:00, место будет сообщено позднее. в рассылку о пересдаче в файле emails.txt. В ином случае допечатать пожелание Хороших каникул!
0
0 / 0 / 0
Регистрация: 21.03.2023
Сообщений: 1
21.03.2023, 21:03
with open('students.csv', 'r', encoding='utf-8') as students_file:
with open('emails.txt', 'w', encoding='utf-8') as emails_file:
for line in students_file:
student_info = line.strip().split(';')
name = student_info[0]
email = student_info[1]
grade = round((int(student_info[2]) + int(student_info[3])) / 2)
email_text = f"To: {email}\nДобрый день, {name}!\nВаша итоговая оценка за курс - {grade}.\n"
if int(student_info[3]) >= 4:
email_text += "Хороших каникул!"
else:
email_text += "Пересдача состоится 15 января в 10:00, место будет сообщено позднее."
emails_file.write(email_text + '\n')

Добавлено через 2 минуты
Python
1
2
3
4
5
6
7
8
9
10
11
with open('students.csv', 'r', encoding='utf-8') as students_file:
    with open('emails.txt', 'w', encoding='utf-8') as emails_file:
        for line in students_file:
            name, email, grade1, grade2 = line.strip().split(';')
            final_grade = round(((int(grade1) * 0.4) + (int(grade2)) * 0.6))
            email_text = f"To: {email}\nДобрый день, {name}!\nВаша итоговая оценка за курс - {final_grade}.\n"
            if int(final_grade) >= 4:
                email_text += "Хороших каникул!"
            else:
                email_text += "Пересдача состоится 15 января в 10:00, место будет сообщено позднее."
            emails_file.write(email_text + '\n')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.03.2023, 21:03
Помогаю со студенческими работами здесь

СМС-рассылка
Для создания смс-рассылки напишите классы Person и Company, а также функцию send_sms. Объект класса Person при инициализации принимает...

Рассылка оценок
Рассылка оценок Преподаватель Елена Семеновна в конце семестра подсчитывает итоговую оценку и делает рассылку, где сообщает каждому...

Рассылка подписчикам бота
Как можно реализовать рассылку людям, подписавшимся на бота? (Библиотека telebot). Пробовал искать в гугле, но мне всегда выбивало...

Не работает рассылка бота
Добрый день У меня такая проблема, в базу данных записываются id,user_id,active, когда пользователь пишет /start. Это все работает, и так...

Python3 рассылка почты
Есть много писем, надо их постоянно отправлять import smtplib from email.mime.text import MIMEText from email.header import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru