Python: задачки и вопросы
Kanalga Telegram’da o‘tish
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media
Ko'proq ko'rsatish6 866
Obunachilar
+124 soatlar
-177 kun
-4530 kun
Postlar arxiv
В Python встроенная переменная name присутствует у следующих объектов:
- Модули
◦ Каждый модуль в Python имеет атрибут name, который содержит имя модуля.
◦ Если модуль запущен как основной (main), name принимает значение "__main__".
◦ Если модуль импортирован, то name содержит его имя в пространстве имен:
В файле my_module.py
>>> print(__name__)
... my_module
- Классы
- Функции и методы
- Лямбда-функции
>>> my_lambda = lambda x: x * 2
>>> print(my_lambda.__name__)
... lambdaЧто из нижеперечисленного про встроенную переменную __name__ верно?
Изменения языка, потенциально способные нарушить работу существующего кода, обычно в Python вводятся постепенно. Они часто появляются как необязательные расширения, которые по умолчанию отключены. Для включения таких расширений используется специальный оператор import следующего вида:
from __future__ import название_средства
Для просмотра списка будущих языковых средств, которые можно импортировать, выполните вызов dir на модуле future после его импортирования или поищите соответствующие сведения в руководстве по библиотеке. Согласно его документации названия будущих средств никогда не удалятся, поэтому совершенно безопасно оставлять импортирование future даже в коде, запускаемом под управлением версии Python, где такие средства присутствуют как нормальные.
К примеру для Python 3.7.9 список средств из будущих версий будет выглядеть так:
>>> import __future__
>>> print(dir(__future__))
… [‘CO_FUTURE_ABSOLUTE_IMPORT', 'CO_FUTURE_ANNOTATIONS', 'CO_FUTURE_BARRY_AS_BDFL', 'CO_FUTURE_DIVISION', 'CO_FUTURE_GENERATOR_STOP', 'CO_FUTURE_PRINT_FUNCTION', 'CO_FUTURE_UNICODE_LITERALS', 'CO_FUTURE_WITH_STATEMENT', 'CO_GENERATOR_ALLOWED', 'CO_NESTED', '_Feature', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'absolute_import', 'all_feature_names', 'annotations', 'barry_as_FLUFL', 'division', 'generator_stop', 'generators', 'nested_scopes', 'print_function', 'unicode_literals', 'with_statement']В Python вы всегда находитесь внутри модуля. Выражаясь кратко, просто не существует способов написания кода, который не будет находиться в каком-то модуле. Набираемый в интерактивной подсказке, на самом деле попадает во встроенный модуль по имени __main__; уникальные особенности интерактивной подсказки заключаются лишь в том, что код выполняется и отбрасывается немедленно, а результаты выражений
выводятся автоматически.
Внутри какого модуля находится ВЕСЬ код проекта по умолчанию?
Пакет пространства имен — это расширение модели импортирования, доступное в Python 3.3 и последующих версиях, и соответствует одному и большему количеству каталогов, которые не содержат файлы __init__.ру. Когда Python находит их во время поиска при импортировании и не обнаруживает первым простой модуль или обычный пакет, то создает пакет пространства имен, который представляет собой виртуальное сцепление всех найденных каталогов, имеющих запрошенное имя модуля. Дальнейшие вложенные компоненты ищутся во всех каталогах пакета пространства имен. Результат подобен обычному пакету, но содержимое может охватывать множество каталогов.
В конструкторе Series описаны параметры:
-
data: итерируемый объект, который превратится в pd.Series
- index: массив индексов, если не указано, будет подставлен RangeIndex (0, 1, 2, …, n)
- dtype: тип данных. Если не указано, будет определено на основе данных
- name: имя серии
- copy: булевая метка — копировать или видоизменять (относится только к другим pd.Series)
ДокументацияВ Python существует два основных типа импортирования: абсолютное и относительное. Оба метода используются для импорта модулей и пакетов, но они имеют разные подходы к указанию местоположения файла.
Абсолютное импортирование подразумевает указание полного пути к модулю, начиная от корня пакета. Это наиболее рекомендуемый метод, поскольку он более читаем и менее подвержен ошибкам.
from some_module import some_func # 1
Относительное импортирование позволяет импортировать модули на основе текущего местоположения файла с использованием точек (.) для обозначения текущего и родительских уровней. Этот метод может быть полезен для больших проектов с глубоко вложенной структурой, но его использование может быть менее очевидным.
from . import some_func # 2Какая строка является примером абсолютного импортирования?
Точка (.) в операции относительного импортирования обозначает каталог пакета, содержащий файл, в котором находится оператор импортирования. Дополнительная ведущая точка выполняет относительное импортирование, начиная с родительского каталога текущего каталога пакета.
Выражение означает «импортировать переменную eggs из модуля по имени spam, который расположен в том же самом пакете, что и файл, содержащий этот оператор».
