Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media
Объяснение:
В Python строки сравниваются посимвольно по лексикографическому порядку:'а' > 'а'
— False
'б' > 'б'
— False
'в' > 'б'
— True
Так и возвращаем True
, игнорируя последний символ — 'в'
Объяснение:
Если прописать один оператор *
для распаковки словаря. То Python вернёт значения состоящее из ключей этого словаря. В данном случае 1 2
Создание HR-платформы без legacy и смс
Сбер на связи, мы ищем системных аналитиков с опытом от 3-х лет для работы над технологической HR-платформой нового поколения.
Что нужно делать:
— Собирать требования вместе с владельцем продукта
— Анализировать функциональность ПО
— Проектировать интеграции с источниками данных
— Поддерживать документации.
Что предложат взамен:
— Работу в одном из лучших офисов Москвы
— Лучшие практики компонентно-реактивного подхода
— Нет legacy и полная свобода в выборе инструментов
— Возможность работать над успешным коммерческим продуктом
— Ежегодный пересмотр зарплат.
Посмотреть подробности и откликнуться
Реклама
Объяснение:
Как мы знаем, булевые значения в Python являются подклассами int и соответствуют целым числам.
True = 1
False = 0
1 + 1 + 0 - 1 = 1
Читать полностью…
Объяснение:func()
возвращает функцию another_func()
, которая имеет доступ к переменной total
из внешней функции
В данном случае каждый вызов counter
увеличивает total
на переданное значение, а последовательные вызовы counter(5)
, counter(10)
и counter(15)
приводят к значениям 5
, 15
и 30
соответственно
Объяснение:
В Python в строках можно применять управляющие символы. Они ДОЛЖНЫ начинаться с «бэкслеша» \
.
Вот несколько примеров:\n
— переход на новую строку;\t
— табуляция;\r
— возврат каретки в начало строки;\b
— возврат каретки на один символ.
Объяснение:
Функция id()
возвращает уникальный идентификатор указанного объекта. Все объекты в Python имеют свой уникальный идентификатор. Идентификатор — это адрес памяти объекта, который будет меняться при каждом запуске программы. За исключением некоторых объектов, имеющих постоянный уникальный идентификатор, например целых чисел от -5 до 256. Поэтому только 2 ответ был правильным.
Объяснение:
С помощью функции round()
мы округляем число до ближайшего целого значения, в данном случае 10. Затем применяется форматирование :.2f
, указывающее, что число должно быть представлено как число с плавающей точкой с двумя знаками после запятой. Таким образом, и получаем 10.00
Объяснение:
На каждой итерации первого цикла, значение элемента с индексом i-1 (предыдущего элемента) заменяется на значение элемента с индексом i (текущего элемента). Это приводит к сдвигу всех элементов списка на одну позицию влево, кроме первого элемента, который заменяется на второй.
Последний элемент списка дублируется, потому что в последней итерации цикла for i in range(1, 6)
нет "следующего" элемента, значение которого можно было бы присвоить предыдущему. На выходе получается "2 3 4 5 6 6".
Объяснение:
Python f-строки позволяют форматировать строки внутри фигурных скобок. Обычно вы вставляете строку без дополнительного форматирования, но можете также задать определённую ширину для вставляемой строки, используя двоеточие после имени переменной, за которым следует необходимая ширина.
В этом случае строка будет выровнена по левому краю, а свободное место заполнится пробелами. Кроме того, вы можете указать выравнивание по правому краю, по центру, добавив символ выравнивания (>, ^) перед шириной и указать символ заполнения.
Объяснение:
Тут всё достаточно просто, если A - True, то печатается one; если B - True, то печатается Python. Если ни одна из переменных не является истиной, код выведет Ciao!
Переменная B равна True, поэтому печатается Python
Объяснение:
Функция divmod(a, b)
работает так, что она возвращает кортеж. Первым его элементом будет результат a // b
, а вторым — a % b
Объяснение:sorted
— это функция, которая создает новый список, содержащий отсортированные элементы исходного списка или итерируемой последовательности. Она не изменяет исходный список. sort
— это метод, который изменяет исходный список, сортируя его элементы в определенном порядке
Объяснение:
В данном коде мы используем функцию enumerate()
, которая возвращает пары индекс-элемент из списка my_list. При каждой итерации цикла for
элемент удаляется из списка по текущему индексу с помощью метода pop()
. Несмотря на то, что индексы элементов меняются после каждого удаления, enumerate()
корректно отслеживает эти изменения.
На первой итерации удаляется индекс 0, который в данном случае исключает число 1 из списка. На второй итерации удаляется элемент с индексом 1
, который теперь равен 3
, потому что из списка был удален первый элемент. Последним индексом для удаления является 2
, который соответствует значению 5
. На этом этапе в my_list
остается только три элемента, поэтому итерация заканчивается, и мы получаем [2, 4, 6]
Объяснение:
Да, именно функция help()
отвечает за вызов встроенной справочной системы. Она предназначена для интерактивного использования
Так, если аргумент не задан, то интерактивная справочная система запускается в консоли интерпретатора
А вот если аргумент является строкой, то она ищется как имя модуля, функции, класса, метода, ключевого слова или раздела документации, а страница справки выводится на консоль
В случае же, если аргумент является любым другим типом объекта, генерируется страница справки об объекте
Объяснение:
Когда мы вызываем next(generator_x())
, это запускает генератор и выполняет его до первого встреченного чётного числа. Поскольку первым таковым является двойка, то и в выводе мы получим её.
Обратите внимание, что при последующих вызовах next(generator_x())
будут генерироваться следующие четные числа из диапазона (4), пока генератор не завершит свою работу. Если вызвать next(generator_x())
после того, как генератор завершит свою работу, будет вызвано исключение StopIteration
Кому не подходит DevOps
Одна из распространенных ошибок начинающих — рассматривать DevOps исключительно как профессию. На самом деле DevOps представляет собой философию и методологический подход к разработке программного обеспечения.
Если вы хотите попробовать себя в этой сфере, предлагаем ознакомиться со статьей Дмитрия Сорокина, технического директора компании-разработчика инфраструктурного ПО “Базис”.
В ней объясняется:
— происхождение термина "DevOps";
— суть методологии;
— круг обязанностей DevOps-инженера;
— и бонусом: кому данная профессия, скорее всего, не подойдет.
#карьера
Объяснение:
Сначала создается список nums
с элементами от 0
до 5
. Затем, с помощью среза nums[:]
создается копия этого списка, и добавляется в конец оригинального списка методом append.
В результате, список nums содержит 7 элементов - 6 оригинальных элементов плюс копия самого себя в виде вложенного списка. Поэтому при выводе мы получим 7
.
Что нового в GitVerse
На онлайн-презентации «GitVerse: открой вселенную кода» СберТех рассказал об обновлениях платформы. Cреди них – CI/CD-инструменты, которые позволят ускорить и упростить разработку. Делимся подробностями:
▪️ Инструменты помогут автоматизировать сборку кода и процессы поставки. Можно воспользоваться уже написанными скриптами сборки и перенести свои проекты с Git-репозиториев в один клик.
▪️ Технология оповещения о новых событиях на сервере (вебхуки) позволит реализовать еще больше сценариев автоматизации.
▪️ Появилась возможность вызывать сторонние сервисы через API по событиям в GitVerse. Например, при определенных событиях в репозитории можно запустить сторонний сборочный конвейер или отправить уведомление в мессенджер.
Регистрируйтесь на GitVerse и протестируйте сами 😉
Реклама
Объяснение:
Кортежи в Python являются неизменяемыми и любая попытка изменить их после создания приведёт к выбросу исключения TypeError
Объяснение:
Если вы прочитаете PEP 572, который определяет выражения присваивания, вы увидите раздел " Исключительные случаи", в котором есть пример, похожий на тот, что приведен в этой викторине. Они называют этот синтаксис "допустимым, но не рекомендуемым". И это хорошо характеризует данный код.
Зато это может помочь нам понять, как работают выражения присваивания. Для этого мы выполнили данный код по частям (см картинку). При первом выводе REPL сообщает нам, что мы создали кортеж (6, 9)
, который был немедленно отброшен), и во время создания кортежа переменной a
было присвоено значение 6
.
При запуске второго выражения мы снова видим, что был создан кортеж, на этот раз со значениями из a
, 16
и 19
. Значение 16
было присвоено b
оператором walrus
, значение 19
было отброшено.
Так и получилось, что 3 ответ был правильным :)
Объяснение:
Приведенный выше код возвращает новый список, содержащий только те элементы списка l, которые не равны нулю. Следовательно, выводится: [1, 2, 'hello']
Объяснение:
Когда func вызывается без аргументов, он использует значение по умолчанию для i, которое определяется на момент написания функции. Поскольку x было равно 1 на момент определения функции, i устанавливается в 1, и это значение выводится на экран.
Объяснение:
Символ //
используется для выполнения целочисленного деления. В результате такого деления получается целое число, дробная часть отбрасывается. Например, результатом деления 5 на 2 будет 2, а не 2.5.
Объяснение:
Первые три операции в Python вполне себе допустимы. А вот умножение целого числа и NoneType нет.
Результаты выполнения этих операций смотрите на картинке!
Объяснение:
Да-да, мы можем использовать оператор вычитания при работе с множествами. В данном случае он будет работать подобно методу difference()
, а значит, находить разность множеств.
Результатом такой операции — является множество, элементы которого содержатся в первом оригинальном множестве, но не содержатся во втором
Объяснение:
Когда вы планируете выполнить несколько присваиваний в Python, необходимо убедиться, что количество переменных в левой части соответствует количеству элементов для присваивания в правой части. В противном случае мы получим Ошибку.
Однако символ *
может помочь решить эту проблему. Он позволяет указать, что одна из переменных в левой части присваивания может принимать любое количество значений из правой части, в то время как в остальные переменные будут присваиваться значения в соответствии с их позицией.
Объяснение:
Как мы все знаем, булевые значения в Python являются подклассами int и соответствуют целым числам. True соответствует 1, поэтому 20 - 1 = 19
Объяснение:
Кто проявил внимательность? Фишка в том, что имя переменной в f-строке мы указали в кавычках, а это значит в результате мы получим просто строку 'lang'
Объяснение:
Хитрость заключается в том, что в Python тип bool
является подклассом int
. Таким образом, True и False также считаются целыми числами со значениями 1 и 0 соответственно.
Другая хитрость заключается в том, что мы проверяем, является ли элемент типом данных int
, ДО того как проверить, является ли он типом bool
, поэтому ВСЕ булевые типы добавляются в список integers_found
. А до блока elif
мы так и не доходим