Python: задачки и вопросы
Kanalga Telegram’da o‘tish
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media
Ko'proq ko'rsatish6 861
Obunachilar
-224 soatlar
-137 kun
-4730 kun
Postlar arxiv
— Сравнение строк основывается на их лексикографическом порядке, который определяется значениемUnicode каждого символа в строке ('apple' > 'banana' # False
— Сравнение чисел происходит по правилам математики (3 < 4 # True)
— А вот словари сравниваются (только оператором ==) , если у них одинаковые ключи. Операторами
> < их не сравнить, получим ошибку:
TypeError: '>' not supported between instances of 'dict' and 'dict'Ну где же ваши ручки!
А вот они, все в зрительном зале конференции Avito All Day Long, тянутся, чтобы задать каверзный вопрос спикерам!
Тоже есть что спросить у профессионалов Авито про интерфейсы, MLOps или отношения в коллективе? Тогда проходи в зрительный зал, присаживайся и слушай ответы, наверняка найдешь среди них что-то полезное и для себя: https://tprg.ru/XNil
Реклама
Какой тип данных не поддерживает прямое сравнение (a > b)?
Мы также можем применять в списке аргументов сам по себе символ
*, указывая на то, что функция не принимает список аргументов переменной длины, но по-прежнему ожидает передачи всех аргументов, следующих за символом *, по ключевому слову. В показанной в задаче функции kwonly() аргумент а может передаваться по позиции или по имени, но аргументы b и с обязаны передаваться по ключевому слову, и никакие добавочные позиционные аргументы не разрешены.Создавайте и проверяйте задания по программированию на GitVerse
На платформе для работы с исходным кодом GitVerse появился SmartClass — бесплатный инструмент для управления заданиями по программированию. С ним можно создавать, хранить и проверять задачи, а также автоматизировать ревью кода с помощью AI-ассистента GigaCode. В общем, все что нужно – теперь под рукой.
Пользователи SmartClass получают все преимущества платформы GitVerse, что дает начинающим специалистам возможность освоить профессиональные инструменты разработки. Решение позволяет не только изучать программирование и код, но и погрузиться в детали работы с такими инструментами и практиками, как CI/CD, Git и многими другими.
И, конечно, теперь смело можно отдать рутину аналитики заданий вашему верному помощнику – AI-ассистенту! За счет встроенных в платформу AI-расширений и AI-ассистента разработчика GigaCode вы можете за пару минут провести аналитику кода и значительно облегчить процесс проверки работ.
Переходите на GitVerse и пробуйте новый инструмент!
Это #партнёрский пост
В 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 изменятся после вызова функции, но только потому, что мы явно это предусмотрели.