Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media
А вы знаете, чем ваша пра-пра-...-пра-бабушка платила за коммуналку?
Уж точно не кредитной картой! Предлагаем узнать и позалипать в финтех-кликер от Газпромбанка.
Окунитесь в историю финтеха: от оплаты ракушками до применения цифровых валют — клик.
Реклама АО «Газпромбанк» erid: LjN8KEmF2
Объяснение:
В этом коде var2
будет иметь значение True
Первая часть выражения (var1 <= 1.0)
проверяет, меньше ли var1
или равно 1.0
, что верно, т.к var1
равно 1.0
Вторая часть выражения isinstance(var1, float)
проверяет, является ли var1
числом с плавающей точкой (float
), что также верно, поскольку var1
было присвоено значение 1.0
(число с плавающей точкой)
Обе части выражения истинны, поэтому var2
принимает значение True
Объяснение:
Здесь мы объявили кортеж nums
с элементами (1, 2, 3)
. В Python кортежи являются неизменяемыми, то есть их элементы нельзя изменить после создания
Попытка выполнить операцию nums[0] = 3
приведет к ошибке, так как она пытается изменить первый элемент кортежа
Поэтому, код вызовет исключение TypeError
при попытке выполнить эту строку, и print(nums)
не будет выполнен
Объяснение:
В коде выше есть синтаксическая ошибка из-за неполной конструкции if
(нет условия после if
)
Однако в Python синтаксические ошибки (SyntaxError
) не могут быть перехвачены блоком try-except
, потому что они возникают во время компиляции кода, а не во время его выполнения
Поэтому код не сможет выполниться должным образом и не выведет ни "Nice"
, ни "Not nice"
, ни "Ok, let's go"
Вместо этого он вызовет SyntaxError
вне блока try-except
Объяснение:
Здесь мы объединяем два кортежа. Кортеж tup
содержит элементы (0, 1)
и складывается с еще одним кортежем, содержащим один элемент (2,)
Обратите внимание, что запятая после 2
необходима, чтобы Python распознал (2, )
как кортеж, а не просто число в скобках
Результатом их сложения будет новый кортеж (0, 1, 2)
, содержащий элементы обоих исходных
Объяснение:
Здесь сравниваются булевы значения (истина или ложь) трёх разных типов данных: строки (var1
), комплексного числа (var2
), и специального значения None (var3
)
В Python пустая строка имеет ложное значение, но поскольку var1
содержит пробел, она не пустая и её булево значение будет True
Комплексное число 0j
рассматривается как False
, так как его величина равна 0
None всегда имеет значение False
Таким образом, bool(var1) == bool(var3)
вернёт False
, а bool(var2) == bool(var3)
вернёт True
Объяснение:
Наш код сравнивает три разных типа данных в Python: список (var1
), множество (var2
) и кортеж (var3
)
Список и множество не могут быть равны, потому что множество не учитывает порядок элементов и не допускает повторений, в отличие от списка
Список и кортеж также не равны, несмотря на одинаковые элементы, потому что это разные типы структур данных
Таким образом, результат обоих сравнений будет False
Объяснение:
Код преобразует строку 'Python'
в список str_lst
символов, затем сортирует этот список в алфавитном порядке
После этого, он объединяет отсортированный список обратно в строку str_
, разделяя каждый символ пробелом с помощью метода join()
При выполнении print(str_)
будет выведено: P h n o t y
Объяснение:
- в первой строке str_
умножается на 2
, что приводит к повторению строки str_
два раза: '0 1 2 0 1 2 '
- во второй строке str_
умножается на 0
, что приводит к пустой строке ''
, поскольку любая строка, умноженная на 0
, дает пустую строку
- в третьей строке str_
умножается на -2
. Отрицательное число в качестве множителя также дает пустую строку
Отсюда и ответ 0 1 2 0 1 2
Объяснение:
Операция деления (/
) в Python возвращает результат в виде числа с плавающей точкой (float
), даже если оба числа являются целыми и деление происходит нацело
Если бы в коде использовалось целочисленное деление (//
), результат был бы 5
Объяснение:
Функция round()
в Python округляет число до ближайшего чётного числа, если дробная часть числа равна 0.5
Это называется «округлением к ближайшему чётному» и помогает уменьшить ошибки округления при обработке большого количества данных
Таким образом, round(11.5)
вернёт 12
и
round(12.5)
вернёт 12
А 12 - 12 = 0
Объяснение:Списки
в Python динамические, что означает, что они могут изменяться после создания, например, вы можете добавить или удалить элементы. Эта гибкость требует дополнительной памяти для хранения ссылок на объекты, а также дополнительной информации, необходимой для управления списком
С другой стороны, кортежи
в Python статические и неизменяемые, что означает, что после создания вы не можете изменить их. Это делает кортежи более эффективными с точки зрения использования памяти, поскольку они не требуют дополнительного пространства для управления изменениями
Поэтому, когда мы печатаем размеры lst
и tup
, то видим, что tup.__sizeof__()
возвращает меньшее значение по сравнению с lst.__sizeof__()
Объяснение:
Глобальная Интерпретаторская Блокировка (GIL) – это механизм, используемый Python для обеспечения того, чтобы только один поток исполнялся в любой момент времени в одном процессе, даже на многопроцессорных системах
Это делается для обеспечения безопасности данных в условиях многопоточности, т.к общие данные и структуры не будут повреждены из-за одновременных изменений от разных потоков
Однако GIL может стать препятствием для параллельного выполнения и уменьшить эффективность многопоточных приложений на Python
Этот вопрос часто встречается в подборках самых популярных тем, затрагиваемых на собеседованиях Python-разработчиков. Чтобы найти ментора, который поможет подготовиться к столь волнительному событию, можно воспользоваться карьерным маркетплейсом hh.ru
Реклама, ООО «Хэдхантер», erid: LjN8KXXoD
Объяснение:
Список a
содержит элементы 1
и 4
, так же, как и список b
. Однако, несмотря на то что списки имеют одинаковые элементы, они являются разными объектами в памяти, поэтому проверка a is b
вернёт False
Такая же ситуация и у x
с y
, сравнение которых также выдаст False
Т.к оба условия в if-выражении
не выполняются, и программа переходит к блоку else
, выводится 0
В этот Хэллоуин звёзды предсказывают вам… 🎃
🃏В колоде для бэкендеров нашлось пять карт, одна из которых досталась вам. Что дальше?
1. Откройте карусель с фото.
2. Найдите вашу карту.
3. Узнайте предсказание.
✨ Это не всё! Переходите на сайт Дзена, чтобы узнать больше о вакансиях бэкенд-разработчиков, и откликайтесь на подходящую: https://vk.cc/cs1qnq
Реклама, ООО «Дзен.Платформа», erid: LjN8KbM26
Объяснение:
Код вызовет ошибку, потому что при вызове функции mult(nums)
передается только один аргумент вместо двух, требуемых функцией mult
В этом случае nums
является кортежем (2, 2)
, который передается в функцию как один аргумент
Чтобы код работал корректно, нужно вызвать функцию mult
с двумя отдельными аргументами, например mult(nums[0], nums[1])
или mult(2, 2)
Объяснение:
Здесь мы создаем новый список, выбирая элементы из списка lst
, которые находятся на его главной диагонали (т.е, элементы, индексы строк и столбцов которых совпадают)
В данном случае, он выбирает элементы lst[0][0]
, lst[1][1]
, и lst[2][2]
, которые равны 1
, 5
и 9
соответственно.
Таким образом, результатом выполнения кода будет список [1, 5, 9]
Объяснение:
Здесь используется оператор целочисленного деления //
, который возвращает целую часть от деления, округляя результат в сторону минус бесконечности
Поэтому, при делении -18
на 4
, математический результат -4.5
округляется вниз до следующего целого числа, которое в этом случае является -5
Объяснение:
Наш код использует метод pop()
на списке lst
. Этот метод удаляет элемент из списка по указанному индексу и возвращает его
В данном случае, pop(1)
удаляет элемент с индексом 1
из списка lst
, равном [2, 0, 2, 3]
В списке Python индексация начинается с 0
, так что элемент с индексом 1
— это второй элемент, который равен 0
. Таким образом, print(lst.pop(1))
выведет 0
А вы знаете, что у нас сейчас проходит розыгрыш подписок Telegram Premium?
Чтобы принять участие, достаточно подписаться на 4 канала, которые помогут быть в тренде и получать лучшее из мира IT:
— тот самый Типичный программист: @tproger
— полезные сохранёнки на все случаи жизни: @prog_stuff
— нужные инструменты для ваших проектов: @prog_tools
— новости из мира технологий: @your_tech
Битва невероятных IT-знаний стартует уже сегодня
Отвечайте на вопросы, зарабатывайте баллы и и обменивайте их на полезные призы. Игроки, собравшие больше всех баллов, получат билет на участие в розыгрыше с призовым фондом в 3,6 миллиона рублей!
Гарантированные бонусы за баллы:
— мини-курсы по креативности и математике;
— год доступа к платформе с английским языком;
— гайд по работе с ChatGPT.
В главном розыгрыше участвуют 30 мест на программу «Нейрохищник» — это двухмесячный интенсив по работе с нейросетями.
Викторина будет идти 3 недели, так что успевайте блеснуть знаниями: https://tprg.ru/fBu9
Реклама ООО «ГикБреинс», ИНН 7726381870, erid: LjN8K11Qn
Объяснение:
Здесь предполагается итерация через диапазон чисел с шагом 0.5
от 0.5
до 5.5
, и каждое число прибавляется к переменной res
Однако функция range()
принимает только целочисленные аргументы, и, следовательно, вызов range(0.5, 5.5, 0.5)
вызовет ошибку TypeError
Из-за нее код не будет выполнен, и ничего не будет выведено
Объяснение:
В первом выражении 0 and 1
, оператор and
возвращает первый операнд (0
), если он ложный, и второй операнд (1
), если первый операнд истинный. Поскольку 0
оценивается как ложный, результатом будет 0
Во втором выражении 0 or 1 or 2
, оператор or
возвращает первый истинный операнд, в этом случае 1
, поскольку 0
оценивается как ложный, но 1
оценивается как истинный
В третьем выражении 1 and 2
вернет 2
, потому что оператор and
продолжает проверку до последнего значения и возвращает его, если все значения истинные, и возвращает последнее значение. Сначала проверяется 1
(которое является истинным), затем 2
(которое также является истинным). В итоге возвращается и печатается 2
Объяснение:
В данном примере, несмотря на то, что в блоке try
есть инструкция return 1
, блок finally
будет выполнен в любом случае после выполнения блока try
Поскольку в блоке finally
также есть инструкция return 2
, это значение будет возвращено функцией func
, переопределяя предыдущее значение 1
Объяснение:
Третий способ создаёт множество
. Остальные варианты — словари
Объяснение:
Здесь lst2
не является новым списком; это просто другая ссылка на тот же самый список, на который ссылается lst1
. А это значит, что обе переменные lst1
и lst2
указывают на один и тот же объект в памяти
Когда вызывается метод lst1.pop(0)
, первый элемент списка удаляется, и теперь список выглядит как [2, 3]
Затем, когда вызывается метод lst2.append(4)
, в список добавляется элемент 4
, и теперь список выглядит как [2, 3, 4]
Поскольку, напомним, lst1
и lst2
указывают на один и тот же список, любые изменения, внесённые через одну из переменных, отражаются в другой переменной
Поэтому мы и получаем [2, 3, 4]
при печати lst1
Отборочный этап на Всероссийский хакатон по биометрии уже стартовал
Если вы молодой специалист, жаждущий новых вызовов и возможностей, не упустите шанс побороться за часть призового фонда в размере 1 000 000 рублей! Регистрируйтесь на отборочный тур и выбирайте один из кейсов:
— разработка инструмента для создания дипфейков;
— разработка инструмента для обнаружения дипфейков;
— фронтальный алгоритм защиты от атак предъявления для лицевой биометрии;
— разработка алгоритма биометрической верификации.
Вас ждут крутой опыт, общение с экспертами, обмен опытом с единомышленниками и, конечно, возможность забрать приз. Подать заявку можно до 6 ноября, а сам отборочный этап пройдёт 10-12 ноября. Переходите по ссылке и узнавайте подробности: https://tprg.ru/ucqU
Реклама ООО «Акселератор возможностей» ИНН 9704005146 LjN8JzLNU
Объяснение:
Круглые скобки вокруг строки могут ввести в заблуждение, но они не создают кортеж
(tuple
), если внутри них находится всего один элемент и не следует запятая
Запятая является тем, что на самом деле определяет кортеж, а не круглые скобки.
Когда выполняется print(type(tup))
, Python возвращает <class 'str'>
, потому что tup
является строкой, а не кортежем
Объяснение:
В данном коде создаётся класс Hmmm
с приватным атрибутом __num
, который инициализируется значением 0
Приватные атрибуты в Python обозначаются двумя подчёркиваниями в начале их имени и не могут быть доступны вне этого класса напрямую
При попытке обратиться к Hmmm.__num
вне класса, Python выдаст ошибку AttributeError
, потому что атрибут __num
скрыт от внешнего кода и его нельзя получить или изменить напрямую
Это один из способов инкапсуляции данных в объектно-ориентированном программировании для обеспечения безопасности и целостности данных
Астрологи объявили неделю бэкенд-разработчика 🔮
🎃 В канун Дня Всех Святых Старшие Арканы развернули инфраструктуру на ваших серверах — выясните, что они предсказывают!
Создавать вэбхуки или изучить новый фреймворк?
Сделайте скриншот экрана — узнайте, какая карта определит вашу судьбу в профессии и какой амулет поможет избежать бед 🧿
Скрин, скрин!