Задача 1. Имена 2
Есть файл people.txt, в котором построчно хранится N имён пользователей.
Напишите программу, которая берёт количество символов в каждой строке файла и в качестве ответа выводит общую сумму. Если в какой-либо строке меньше трёх символов (не считая литерала \n), то вызывается ошибка и сообщение, в какой именно строке возникла ошибка. Программа при этом не завершается и обрабатывает все имена файла.
Также при желании можно вывести все ошибки в отдельный файл errors.log.
Задача 2. Координаты
Есть файл coordinates.txt, в котором хранится N пар из чисел X и Y. Оба числа передаются в первую функцию, где к каждой координате прибавляется случайное число (от 0 до 5 и от 0 до 10) и возвращается результат деления X на Y. Затем эти же координаты передаются во вторую функцию, где уже отнимается случайное число и возвращается Y / X.
После этого формируется случайное число от 0 до 100, затем в файл result.txt в каждую строку записывается отсортированный список, состоящий из этого случайного числа и двух полученных результатов.
Задача 3. Счастливое число
Напишите программу, которая запрашивает у пользователя число до тех пор, пока сумма этих чисел не станет больше либо равна 777. Каждое введённое число при этом дозаписывается в файл out_file.txt. Сделайте так, чтобы перед дозаписью программа с вероятностью 1 к 13 выбрасывала пользователю случайное исключение и завершалась.
Задача 4. Регистрация
У вас есть файл с протоколом регистраций пользователей на сайте — `registrations.txt`. Каждая строка содержит имя, емейл и возраст, разделённые пробелами. Например: `Василий test@test.ru 27`.
Напишите программу, которая проверяет данные из файла для каждой строки:
- Присутствуют все три поля.
- Поле «Имя» содержит только буквы.
- Поле «Имейл» содержит @ и . (точку).
- Поле «Возраст» является числом от 10 до 99.
В результате проверки сформируйте два файла:
- `registrations_good.log` — для правильных данных, записывать строки в том виде, как есть;
- `registrations_bad.log` — для ошибочных, записывать строку и вид ошибки.
Для валидации строки данных напишите функцию, которая может выдавать исключения:
- НЕ присутствуют все три поля: `IndexError`.
- Поле «Имя» содержит НЕ только буквы: `NameError`.
- Поле «Имейл» НЕ содержит @ и . (точку): `SyntaxError`.
- Поле «Возраст» НЕ является числом от 10 до 99: `ValueError`.
Задача 5. Текстовый калькулятор
Иван стоит на пороге величайшего открытия (не будем его расстраивать), которое перевернёт представление обо всей математике и программировании. Имя этому открытию — текстовый калькулятор. Правда, код для своего открытия ему сложно написать самому, и поэтому он попросил вас помочь ему. Так что уже можно бежать в патентное бюро.
Есть файл calc.txt, в котором хранятся записи вида:
- 100 + 34,
- 23 / 4,
то есть ОПЕРАНД_1 ОПЕРАЦИЯ ОПЕРАНД_2, разделённые пробелами.
Операнды — целые числа. Операции — арифметические (включая деление нацело и нахождение остатка).
Напишите программу, которая вычисляет все эти операции и находит сумму их результатов. Пропишите обработку возможных ошибок. Программа не должна завершаться при первой же ошибке, она учитывает все верные строки и выводит найденный ответ.
После успешного выполнения задания, попробуйте модифицировать задачу. Теперь пользователю на экран должно выводиться сообщение с ошибочной строкой и предложением её исправить.
Задача 6. Чат
Реализуйте программу — чат, в котором могут участвовать сразу несколько человек, то есть программа может работать одновременно для нескольких пользователей. При запуске запрашивается имя пользователя. После этого он выбирает одно из действий:
Посмотреть текущий текст чата.
Отправить сообщение (затем вводит сообщение).
Действия запрашиваются бесконечно.
Примечание: для решения задачи вам будет достаточно текущих знаний, нужно лишь проявить немного фантазии и хитрости. Не нужно лезть в дебри работы с сетями, создания GUI-приложений и прочих штук. (Но если очень хочется, то останавливать вас никто не будет!)