Python: задачки и вопросы
Kanalga Telegram’da o‘tish
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media
Ko'proq ko'rsatish7 127
Obunachilar
Ma'lumot yo'q24 soatlar
+67 kunlar
Ma'lumot yo'q30 kunlar
Postlar arxiv
Синтаксис путей с точками был выбран отчасти для обеспечения нейтральности к платформе, но еще и потому, что пути в операторах
import становятся реальными цепочками вложенных объектов. Такой синтаксис также означает, вы можете получать странные сообщения об ошибках, если забудете опустить .ру в своих операторах import. Скажем, оператор import mod.ру предположительно является операцией импортирования пути к каталогу — он загружает mod.py, затем пытается загрузить mod\py .ру и в конечном итоге выдает потенциальносбивающее с толку сообщение об ошибке “No module named ру” (“Модуль по имени ру отсутствует”). Начиная с версии Python 3.3, сообщение об ошибке было улучшено и выглядит как “No module named ‘mod.py’; mod is not a package” (“Модуль по имени mod.py отсутствует; mod не является пакетом”).Совсем скоро беспилотный транспорт изменит нашу жизнь. Присоединяйся к Navio и участвуй в создании технологии автономного вождения.
Коллегам нужны талантливые Python-разработчики, готовые к нестандартным задачам. В Navio создали софт, который обрабатывает информацию с сенсоров, понимает контекст и выбирает оптимальный алгоритм действий для безопасности всех участников дорожного движения. Впереди — еще больше интересной работы.
Вас ждет сильная команда, готовая сделать невозможное возможным. Ребята решают интересные задачи, используя передовые технологии, и работают с новейшими решениями и продуктами. Прими вызов и создавай будущее вместе сNavio.
Выбирай одну или несколько вакансий и откликайся.
Это #партнёрский пост
Почему import mod.py вызовет ошибку? (Файл mod.py существует) #размяться
Подобно
def, операторы import и from являются исполняемыми, а не объявляемый на стадии компиляции. Они могут вкладываться внутри проверок if для выбора среди нескольких вариантов, находиться внутри оператора def функции, чтобы загружать только по вызову, использоваться в блоках try для обеспечения стандартных значений. Они не распознаются и не запускаются до тех пор, пока Python не встретит их во время выполнения программы.Оператор
from … * может использоваться только на верхнем уровне файла модуля, но не внутри функции. Его присутствие там делает невозможным статическое обнаружение переменных. Вот почему в некоторых источниках рекомендуется импортировать все необходимое в начале файла.py.Можно ли использовать оператор from … * внутри функции?
Модули загружаются и запускаются при выполнении первого оператора import или from и только первого. Так было задумано — поскольку импортирование является
затратной операцией, по умолчанию Python делает его только один раз на файл и
однократно на процесс. Более поздние операции импортирования просто извлекают
объект уже загруженного модуля.
В качестве одного последствия, из-за того, что код верхнего уровня в файле модуля
обычно выполняется только один раз, вы можете применять его для инициализации
переменных. Взгляните на содержимое файла simple.ру:
print('hello')
spam = 1
В приведенном примере операторы print и = выполняются, когда модуль импортируется в первый раз, и переменная spam инициализируется во время импортирования:
# main.py
import simple # Первая операция импортирования: загружает и выполняет код файла
simple.spam = 2
Вторая и последующие операции импортирования не выполняют код модуля повторно; они всего лишь извлекают уже созданный объект модуля из внутренней таблицы модулей Python. Таким образом, переменная spam не будет инициализироваться заново:
import simple
print(simple.spam) # 2
Если вы действительно хотите, чтобы код модуля выполнился повторно при последующей операции импортирования, это делается с помощью функции reload.Поскольку оператор from копирует специфические имена из одного файла в другую область видимости, он дает возможность применять скопированные имена в сценарии напрямую, не уточняя их именем модуля.
Такая форма from позволяет указывать одно или несколько имен для копирования, разделенных запятыми. Здесь оператор from имеет такой же эффект, как в предыдущем примере, но из-за того, что импортированное имя копируется в область видимости, где находится from, использование этого имени в сценарии сопряжено с меньшим объемом набора — мы можем работать с именем напрямую, не задавая включающий модуль. В действительности мы обязаны поступать так; from не создает переменную с именем самого модуля.
Оператор from на самом деле является всего лишь незначительным расширением оператора import — он импортирует файл модуля обычным образом, но добавляет дополнительный шаг, который копирует одно или большее количество имен (не объектов) из файла. Загружается целый файл, но вам предоставляются имена для более прямого доступа к его частям.
Из-за того, что имена модулей становятся именами переменных внутри программы Python, они также обязаны следовать обычным правилам именования переменных. Скажем, вы можете создать файл модуля по имени if.ру, но будете не в состоянии его импортировать, т.к.
if является зарезервированным словом — оператор import if приведет к синтаксической ошибке.
На самом деле правилам именования переменных должны подчиняться как имена файлов модулей, так и имена каталогов, используемых в операциях импортирования пакетов; например, они могут содержать только буквы, цифры и подчеркивания. Кроме того, каталоги пакетов также не могут содержать синтаксис, специфичный для платформы, такой как пробелы в своих именах.Устанавливать переменную среды PYTHONPATH необходимо только при импортировании
из каталогов, отличающихся от каталога, в котором вы работаете (т.е. текущего каталога при работе в интерактивной подсказке или каталога, содержащего ваш файл верхнего уровня). На практике это часто встречающийся случай для нетривиальных программ.
Пример: вы используете в своем проекте Google Tesseract — OCR-систему, и перед её использованием в файле.py необходимо прописать путь до исполняемого файла.
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
