Python: задачки и вопросы
الذهاب إلى القناة على Telegram
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media
إظهار المزيد7 125
المشتركون
لا توجد بيانات24 ساعات
+67 أيام
لا توجد بيانات30 أيام
أرشيف المشاركات
В Python 3. Х обобщены правила упорядочения в заголовках функций, чтобы позволить указывать аргументы с передачей только по ключевым словам — аргументы, которые должны передаваться только по ключевому слову и никогда не будут заполняться позиционными аргументами. Они полезны, когда необходима функция, которая и обрабатывает любое количество аргументов (возможно, конфигурационные параметры).
Синтаксически аргументы с передачей только по ключевым словам записываются как именованные аргументы, которые могут появляться после конструкции
*аргументы в списке аргументов. Значения для таких аргументов должны передаваться в вызове с использованием синтаксиса ключевых аргументов. В задаче выше аргумент а может передаваться по имени или по позиции, b собирает добавочные позиционные аргументы, а с должно передаваться только по ключевому слову.А вот и новая глава Виммельбуха!
Технологичный город на пороге Нового года! В предпраздничной суете кто-то из жителей осмелится на важный шаг в своей жизни, а кто-то узнает хорошую новость и будет встречать 2025-ый в новом статусе. Переходите по ссылке и узнайте, что случилось в городе в канун праздника: https://tprg.ru/cCuQ
Ниже приводится несколько правил в языке Python, которым вам необходимо следовать, если у вас появится потребность использовать специальные режимы сопоставления аргументов:
— В вызове функции аргументы должны указываться в следующем порядке: любые позиционные аргументы (значения), за которыми могут следовать
любые именованные аргументы (имя=значение) и аргументы в форме *итерируемый объект, за которыми могут следовать аргументы в форме **словарь.
— В заголовке функции аргументы должны указываться в следующем порядке: любые обычные аргументы (name), за которыми могут следовать аргументы со значениями по умолчанию (name=value), за которыми следуют аргументы в форме *name (или * в 3.0), если имеются, за которыми могут следовать любые имена или пары name=value аргументов, которые передаются только по имени (в 3.0), за которыми могут следовать аргументы в форме **имя.
def func(*имя) # *имя собирает любые добавочные не прошедшие сопоставление аргументы в кортеж, а **имя — в словарь.
В версии Python 3.0 и выше любые обычные аргументы или аргументы со значениями по умолчанию, следующие за формой *имя или за единственным символом *, являются именованными аргументами, которые при вызове функции должны передаваться только по имени.Чем отличается сопоставление аргументов функции func(*arg_obj) от func(**arg_obj)?
Инструкция return может возвращать объект любого типа, поэтому с ее помощью можно возвращать сразу несколько значений, упаковав их в кортеж или в коллекцию любого другого типа.
def multiple(x, y):
x = 2 # Изменяется только локальное имя
y = [3, 4]
return x, y # Новые значения возвращаются в виде кортежа
X = 1
L = [1, 2]
Z = multiple(X, L) # Результаты присваиваются именам в вызывающей программе
print(Z) # (2, [3, 4]) — это кортеж
Выглядит так, как будто функция возвращает два значения, но на самом деле – это единственный кортеж, состоящий из двух элементов, а необязательные окружающие скобки просто опущены. После возврата из функции можно использовать операцию присваивания кортежа, чтобы извлечь отдельные элементы. Переменные X и L изменятся после вызова функции, но только потому, что мы явно это предусмотрели.Вы когда-нибудь хотели стать лучшей версией себя?
Применять SQLAlchemy эффективнее — быстрее, лучше, умнее!
23 декабря, 20:00 мск — открытый урок для Python-разработчиков.
Что делать, если методы, использующие SQLAlchemy и СУБД, тормозят? Когда оптимизация внутри SQLAlchemy — благо, а когда — беда? Как создать удобную панель администрирования поверх SQLAlchemy?
Спикер Дмитрий Панкрашов — ведущий разработчик в компании-партнере вендора СЭД «Директум».
Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/rbJm/
Все участники открытого урока получат скидку на «Python Developer. Professional»
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
func(**словарь) передает все пары ключ / значение в словаре как отдельные ключевые аргументы.
Неважно, в каком порядке в dct указаны элементы: функция распределит их поименно. Такой тип сопоставления аргументов называется «ключевое».
foo(first = 1, second = 'Текст') # как интерпретатор видит аргументы
Существует также позиционное сопоставление аргументов foo(arg1, arg2), где аргументы сопоставляются по их положению. Чтобы оно заработало со словарем dct, придется передать их так:
foo(dct['first'], dct['second'])X = 1
a = X # Разделяют тот же самый объект в памяти
a = 2 # Переустанавливает только a, значением X по-прежнему будет 1
print(X)
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
