from ... import

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

В этом модуле мы разберем конструкцию from ... import. Эта форма импорта позволяет подключать конкретные функции, классы или переменные из модуля, не импортируя модуль целиком. Это делает код компактнее и избавляет от необходимости постоянно писать имя модуля перед каждой функцией (например, sqrt() вместо math.sqrt()).

Мы изучим:

  • Базовый синтаксис частичного импорта.
  • Импорт нескольких объектов сразу.
  • Использование псевдонимов (алиасов) с ключевым словом as.
  • Особенности работы с пространством имен (почему после from имя самого модуля становится недоступным).
  • Потенциальные проблемы при импорте через звездочку *.

Выполните задания ниже, чтобы закрепить навыки работы с выборочным импортом.

Список тем

1. Импорт конкретной функции

id: 40075_task_16_1

Нам нужно вычислить квадратный корень числа, но мы не хотим каждый раз писать префикс модуля. Заполните пропуски, чтобы импортировать только функцию `sqrt` из модуля `math`.

Заполните пропуски
input1S math input2S sqrt

print(sqrt(25))
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Исправьте порядок ключевых слов

id: 40075_task_16_2

В этом коде перепутаны местами ключевые слова и названия. Исправьте строку импорта так, чтобы она стала синтаксически верной для Python.

Найдите ошибку и исправьте
import pi from math
print(f"Число Пи равно {pi}")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

3. Пространство имен после импорта

id: 40075_task_16_3

Внимательно посмотрите на код. Мы импортировали число `pi` из модуля `math`. Что произойдет при попытке обратиться к самому модулю `math` в функции print?

Выберите правильный вариант ответа
from math import pi

# Пытаемся вывести значение через имя модуля
print(math.pi)
Сообщения
Проверить
Показать подсказку

4. Импорт с переименованием (Alias)

id: 40075_task_16_4

Иногда названия функций слишком длинные или могут совпадать с вашими переменными. Используйте банк слов, чтобы импортировать функцию `sleep` из модуля `time`, но дать ей короткое имя `pause`.

Нужно правильно расставить в пропуски предложенные варианты
input1S time input2S sleep input3S pause

print("Start")
pause(1)
print("End")
from
import
as
in
rename
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

5. Импорт нескольких функций

id: 40075_task_16_5

Соберите код, который импортирует сразу две функции (`sin` и `cos`) из модуля `math` в одной строке, а затем использует их. Обратите внимание на синтаксис перечисления.

Перетяните в правильном порядке строки из одного блока в другой
print(sin(0) + cos(0))
from math import sin, cos
import math.sin, math.cos
from math import sin; cos
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

6. Виды импорта и их смысл

id: 40075_task_16_6

Сопоставьте конкретную строку кода с описанием того, что именно она делает.

Сопоставьте строки в правой(нижней) части с соответствующими строками в левой(верхней) по порядковому номеру
Импортирует все содержимое модуля (не рекомендуется)
Импортирует объект и дает ему другое имя
Импортирует несколько конкретных объектов
from module import *
from module import x, y
from module import a as b
Сообщения
Проверить
Показать подсказку

7. Как мы обращаемся к объектам?

id: 40075_task_16_7

В зависимости от способа импорта, обращение к функциям в коде меняется. Распределите примеры вызова функций по категориям: когда мы импортировали весь модуль (`import math`) и когда мы использовали частичный импорт (`from math import ...`).

Перетяните элементы в соответствующие блоки
Требует префикса (import module)
Без префикса (from module import ...)
math.sqrt(4)
pi
random.randint(1, 10)
sin(90)
os.path.join('a', 'b')
exit()
Сообщения
Проверить
Показать подсказку

8. Конфликт имен

id: 40075_task_16_8

Посмотрите, как порядок строк влияет на значение переменной `e` (число Эйлера). Что выведет этот код? Введите число.

Что должно получиться?
from math import e
e = 10
print(e)
Сообщения
Проверить
Показать подсказку

Python: запуск кода в браузере

id: 40075_compiler
🐍
Запустить тренажёр (Python)
НайтиКурс.Ру