Найти тему
Заметки по Python

Основы Python. Часть 9

Оглавление

Задача 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 в каждую строку записывается отсортированный список, состоящий из этого случайного числа и двух полученных результатов.

-2

Задача 3. Счастливое число

Напишите программу, которая запрашивает у пользователя число до тех пор, пока сумма этих чисел не станет больше либо равна 777. Каждое введённое число при этом дозаписывается в файл out_file.txt. Сделайте так, чтобы перед дозаписью программа с вероятностью 1 к 13 выбрасывала пользователю случайное исключение и завершалась.

-3

Задача 4. Регистрация

У вас есть файл с протоколом регистраций пользователей на сайте — `registrations.txt`. Каждая строка содержит имя, емейл и возраст, разделённые пробелами. Например: `Василий test@test.ru 27`.

Напишите программу, которая проверяет данные из файла для каждой строки:

- Присутствуют все три поля.

- Поле «Имя» содержит только буквы.

- Поле «Имейл» содержит @ и . (точку).

- Поле «Возраст» является числом от 10 до 99.

В результате проверки сформируйте два файла:

  • `registrations_good.log` — для правильных данных, записывать строки в том виде, как есть;
  • `registrations_bad.log` — для ошибочных, записывать строку и вид ошибки.

Для валидации строки данных напишите функцию, которая может выдавать исключения:

  • НЕ присутствуют все три поля: `IndexError`.
  • Поле «Имя» содержит НЕ только буквы: `NameError`.
  • Поле «Имейл» НЕ содержит @ и . (точку): `SyntaxError`.
  • Поле «Возраст» НЕ является числом от 10 до 99: `ValueError`.
-4

Задача 5. Текстовый калькулятор

Иван стоит на пороге величайшего открытия (не будем его расстраивать), которое перевернёт представление обо всей математике и программировании. Имя этому открытию — текстовый калькулятор. Правда, код для своего открытия ему сложно написать самому, и поэтому он попросил вас помочь ему. Так что уже можно бежать в патентное бюро.

Есть файл calc.txt, в котором хранятся записи вида:

- 100 + 34,

- 23 / 4,

то есть ОПЕРАНД_1 ОПЕРАЦИЯ ОПЕРАНД_2, разделённые пробелами.

Операнды — целые числа. Операции — арифметические (включая деление нацело и нахождение остатка).

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

После успешного выполнения задания, попробуйте модифицировать задачу. Теперь пользователю на экран должно выводиться сообщение с ошибочной строкой и предложением её исправить.

-5

Задача 6. Чат

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

Посмотреть текущий текст чата.

Отправить сообщение (затем вводит сообщение).

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

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

-6

Наука
7 млн интересуются