УПРАЖНЕНИЯ
10-6 . Сложение: при вводе числовых данных часто встречается типичная проблема: поль-
зователь вводит текст вместо чисел . При попытке преобразовать данные в int происходит
исключение TypeError . Напишите программу, которая запрашивает два числа, складывает
их и выводит результат . Перехватите исключение TypeError, если какое-либо из входных
значений не является числом, и выведите удобное сообщение об ошибке . Протестируйте
свою программу: сначала введите два числа, а потом введите текст вместо одного из чисел .
10-7 . Калькулятор: заключите код из упражнения 10-6 в цикл while, чтобы пользователь
мог продолжать вводить числа, даже если он допустил ошибку и ввел текст вместо числа .
10-8 . Кошки и собаки: создайте два файла с именами cats .txt и dogs .txt . Сохраните минимум
три клички кошек в первом файле и три клички собак во втором . Напишите программу,
которая пытается прочитать эти файлы и выводит их содержимое на экран . Заключите
свой код в блок try-except для перехвата исключения FileNotFoundError и вывода понятного
сообщения об отсутствии файла . Переместите один из файлов в другое место файловой
системы; убедитесь в том, что код блока except выполняется, как и положено .
10-9 . Ошибки без уведомления: измените блок except из упражнения 10-8 так, чтобы при
отсутствии файла программа продолжала работу, не уведомляя пользователя о проблеме .
10-10 . Частые слова: зайдите на сайт проекта «Гутенберг» (http://gutenberg .org/) и найдите
несколько книг для анализа . Загрузите текстовые файлы этих произведений или скопируй-
те текст из браузера в текстовый файл на вашем компьютере .
Для подсчета количества вхождений слова или выражения в строку можно воспользовать-
ся методом count() . Например, следующий код подсчитывает количество вхождений ‘row’
в строке:
>>> line = "Row, row, row your boat"
>>> line.count('row')
2
>>> line.lower().count('row')
3
204 Глава 10 • Файлы и исключения
Обратите внимание: преобразование строки к нижнему регистру функцией lower() позволя-
ет найти все вхождения искомого слова независимо от регистра .
Напишите программу, которая читает файлы из проекта «Гутенберг» и определяет количе-
ство вхождений слова ‘the’ в каждом тексте .
Сохранение данных
Многие ваши программы будут запрашивать у пользователя информацию. Напри-
мер, пользователь может вводить настройки для компьютерной игры или данные
для визуального представления. Чем бы ни занималась ваша программа, инфор-
мация, введенная пользователем, будет сохраняться в структурах данных (таких,
как списки или словари). Когда пользователь закрывает программу, введенную
им информацию почти всегда следует сохранять на будущее. Простейший способ
сохранения данных основан на использовании модуля
json
.
Модуль
json
обеспечивает запись простых структур данных Python в файл и за-
грузку данных из файла при следующем запуске программы. Модуль
json
также
может использоваться для обмена данными между программами Python. Более
того, формат данных JSON не привязан к Python, поэтому данные в этом формате
можно передавать программам, написанным на многих других языках програм-
мирования. Это полезный и универсальный формат, который к тому же легко
изучается.
Достарыңызбен бөлісу: |