Функции в Python и работа с файлами — тренажёр
Тренировка по теме «Функции в Python и работа с файлами»: задачи с меняющимися числами, мгновенная проверка, подсказка и подробный разбор к каждой. Ниже — шпаргалка по теме, разобранные примеры и ответы на частые вопросы.
Тренировка
0/81 Рекурсивный факториал: fact(1) делает один вызов, а fact(n) — свой вызов плюс fact(n - 1). Сколько всего вызовов fact произойдёт при вычислении fact(7)?
Выбери ответ и нажми «Проверить». Подсказка рядом — пользоваться не стыдно.
Разбор примеров из тренажёра
13 задач из пула этого тренажёра с полной логикой решения: условие, подсказка, как решать и ответ. В самом тренажёре числа в каждой задаче обновляются от раунда к раунду — принцип решения остаётся тем же.
Пример 1. Рекурсивный факториал: fact(1) делает один вызов, а fact(n) — свой вызов плюс fact(n - 1). Сколько всего вызовов fact произойдёт при вычислении fact(6)?
Подсказка. Считай вызовы от 6 до 1 включительно.
Как решать. Цепочка вызовов тянется от 6 вниз до 1: всего 6 вызовов.
Ответ: 6
Пример 2. Текстовый файл занимает 3 Кбайт. Сколько это байт?
Подсказка. Один Кбайт — 1024 байта.
Как решать. В одном Кбайте 1024 байта: 3 умножить на 1024.
Ответ: 3072
Пример 3. Файл содержит 11 строк, и в каждой строке через пробел записано 6 чисел. Сколько всего чисел прочитает программа?
Подсказка. Умножь число строк на числа в строке.
Как решать. 11 строк по 6 чисел: 11 умножить на 6.
Ответ: 66
Пример 4. Рекурсивный факториал: fact(1) делает один вызов, а fact(n) — свой вызов плюс fact(n - 1). Сколько всего вызовов fact произойдёт при вычислении fact(3)?
Подсказка. Считай вызовы от 3 до 1 включительно.
Как решать. Цепочка вызовов тянется от 3 вниз до 1: всего 3 вызовов.
Ответ: 3
Пример 5. Текстовый файл занимает 10 Кбайт. Сколько это байт?
Подсказка. Один Кбайт — 1024 байта.
Как решать. В одном Кбайте 1024 байта: 10 умножить на 1024.
Ответ: 10240
Пример 6. Файл содержит 7 строк, и в каждой строке через пробел записано 4 чисел. Сколько всего чисел прочитает программа?
Подсказка. Умножь число строк на числа в строке.
Как решать. 7 строк по 4 чисел: 7 умножить на 4.
Ответ: 28
Пример 7. Рекурсивный факториал: fact(1) делает один вызов, а fact(n) — свой вызов плюс fact(n - 1). Сколько всего вызовов fact произойдёт при вычислении fact(5)?
Подсказка. Считай вызовы от 5 до 1 включительно.
Как решать. Цепочка вызовов тянется от 5 вниз до 1: всего 5 вызовов.
Ответ: 5
Пример 8. Текстовый файл занимает 7 Кбайт. Сколько это байт?
Подсказка. Один Кбайт — 1024 байта.
Как решать. В одном Кбайте 1024 байта: 7 умножить на 1024.
Ответ: 7168
Пример 9. Рекурсивный факториал: fact(1) делает один вызов, а fact(n) — свой вызов плюс fact(n - 1). Сколько всего вызовов fact произойдёт при вычислении fact(7)?
Подсказка. Считай вызовы от 7 до 1 включительно.
Как решать. Цепочка вызовов тянется от 7 вниз до 1: всего 7 вызовов.
Ответ: 7
Пример 10. Текстовый файл занимает 11 Кбайт. Сколько это байт?
Подсказка. Один Кбайт — 1024 байта.
Как решать. В одном Кбайте 1024 байта: 11 умножить на 1024.
Ответ: 11264
Пример 11. Файл содержит 13 строк, и в каждой строке через пробел записано 9 чисел. Сколько всего чисел прочитает программа?
Подсказка. Умножь число строк на числа в строке.
Как решать. 13 строк по 9 чисел: 13 умножить на 9.
Ответ: 117
Пример 12. Текстовый файл занимает 12 Кбайт. Сколько это байт?
Подсказка. Один Кбайт — 1024 байта.
Как решать. В одном Кбайте 1024 байта: 12 умножить на 1024.
Ответ: 12288
Пример 13. Файл содержит 6 строк, и в каждой строке через пробел записано 8 чисел. Сколько всего чисел прочитает программа?
Подсказка. Умножь число строк на числа в строке.
Как решать. 6 строк по 8 чисел: 6 умножить на 8.
Ответ: 48
Вопросы для повторения темы
Контрольные вопросы по «Функции в Python и работа с файлами» с верными ответами и пояснениями — проверь себя до запуска тренажёра.
Вопрос 1. Что напечатает print(f(5)), если функция объявлена как def f(x): x * 2 без return?
Ответ: None
Пояснение. Значение x * 2 вычислено, но не возвращено: без return функция отдаёт None, и его напечатает print.
Вопрос 2. Функция объявлена как def price(t, k=100): return t * k. Что вернёт вызов price(3)?
Ответ: 300
Пояснение. Аргумент t равен 3, а k не передали — работает значение по умолчанию 100: 3 умножить на 100 будет 300.
Вопрос 3. После выполнения блока with open("data.txt") as f: файл закрывается автоматически.
Ответ: Верно
Пояснение. with сам вызывает close при выходе из блока — даже если внутри произошла ошибка.
Вопрос 4. Какие утверждения про функции верны?
Ответ: глобальную переменную можно читать из функции без global; переменная, созданная внутри функции, снаружи недоступна; return может встречаться в разных ветках if одной функции
Пояснение. Читать глобальную можно, менять — только через global; локальные переменные живут внутри; return спокойно работает в разных ветках. Параметры у функции не обязательны.
Вопрос 5. Расставь шаги чтения данных из файла по порядку.
Ответ: открыть файл: open("data.txt") → прочитать содержимое методом read → разбить текст на части методом split → вывести готовые значения
Пояснение. Сначала открываем файл, потом читаем содержимое, затем обрабатываем строки и только потом выводим результат.
Вопрос 6. Сопоставь конструкцию и её смысл.
Пояснение. def объявляет функцию, return возвращает значение, а "r" и "a" — режимы open: чтение и дозапись.
Вопрос 7. Вставь пропущенные слова.
Ответ: return → локальной
Пояснение. return возвращает результат вызывающему коду, а переменные функции локальны — снаружи их не видно.
Настройте ритм перед экзаменом: задание дня по информатике — новое каждый день.