Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media
Объяснение:
Результат выполнения кода — 11
В цикле каждый элемент кортежа tup
преобразуется в целое число с помощью функции int()
и добавляется к переменной var
Значения True
преобразуются в 1
, False
в 0
, дробные и вещественные числа округляются вниз до ближайшего целого, поэтому 1.001
становится 1
и 2e-04
становится 0
, а значение 8
остается без изменений
Пришло время провести своё техсобеседование.
Да, вы не ослышались! Но это возможно только в нашем королевстве зазеркалья Nozo.
Мы знаем, как волнительно решать задачи на техинтервью, поэтому в нашем королевстве всё наоборот! Теперь ваша очередь заставить инженеров потрудиться и отправить им на решение самые каверзные задачи по Go, C# или QA.
Авторы 4 самых сложных и интересных задач получат мерч от Ozon Tech. А победитель заберёт лучшую награду: карьерную консультацию с HR Ozon Tech или встречу с тимлидом команды инженеров.
Инженеры будут ждать ваши задачи до 7 ноября.
А если вам нечем их озадачить, вступайте в чат королевства, пробуйте решить задачи других участников и участвуйте в голосовании.
Все подробности на лендинге.
Реклама ООО «Озон Технологии», erid: LjN8KCk3g
Объяснение:
В Python строки являются «истинными» (True
), если они не пусты, и «ложными» (False
), если пусты
Так как обе строки text1
и text2
не пусты, их булево значение будет True
, и условие if bool(text1) == bool(text2)
выполняется
Следовательно, будет напечатано True
Объяснение:
Здесь применяются унарные операторы +
и -
Унарный +
не изменяет значение операнда, в то время как унарный -
меняет знак операнда на противоположный.
Однако эти операторы применяются последовательно, а не одновременно. Сначала применяется унарный оператор +
к переменной num
, что не изменяет её значение, а затем унарный оператор -
применяется к результату, меняя знак на противоположный
Так мы и получаем ответ -1
Объяснение:
Выражение lst1 + lst2 - 2 * lst3
будет вызывать ошибку, так как операции вычитания (-
) и умножения (*
) не определены для списков в контексте кода выше
Операция сложения (+
) между двумя списками допустима и приведёт к их объединению
Но когда интерпретатор дойдёт до операции вычитания, он выдаст ошибку. Чтобы выполнить вычитание или умножение списков, нужно использовать специализированные функции или библиотеки, например, NumPy
для работы с массивами
Объяснение:
В словаре dct2
мы используем генератор словаря, который переворачивает ключи и значения словаря dct1
Это означает, что каждое значение из dct1
становится ключом в dct2
, а каждый ключ из dct1
становится значением в dct2
Продолжение бомбического гайда по работе с Pandas!
Узнайте, как анализировать данные ещё эффективнее, оптимизировать хранение данных в памяти и избегать лишних аллокаций
Также материал познакомит вас со списком альтернативных инструментов для обработки больших данных. Не упустите шанс стать мастером Pandas! Переходите по ссылке
Объяснение:
Команда del lst[:-2:]
удаляет элементы списка до предпоследнего элемента. В списке lst
элементы 2
и 0
находятся до предпоследнего элемента
Поэтому после выполнения команды del
, в списке остаются только элементы [2, 3]
Объяснение:
В данном коде создаётся объект класса IDHandler
с начальным значением id = 11
В методе __init__
мы присваиваем значение id
атрибуту self.id
, поэтому self.id
теперь равно 11
Затем, в следующей строке id += 58
, мы пытаемся увеличить локальную переменную id
на 58
, но это не влияет на атрибут self.id
, поскольку id
и self.id
— это разные переменные
Локальная переменная id
исчезает после выхода из метода __init__
, и когда мы печатаем handler_object.id
, оно всё ещё равно 11
, поскольку значение атрибута self.id
не было изменено
У Яндекс Практикума есть бесплатный курс по основам анализа данных
В нём забавный интерактивный сюжет и много практики: четыре реальных кейса из разных областей. Вам предстоит:
— выяснить причину массовой поломки гаджетов,
— проверить окупаемость рекламы мобильного приложения,
— выбрать стратегию развития ИИ-стартапа,
— оценить эффективность роботов в службе поддержки.
На курсе вы напишете первый код на Python и поймёте, чем занимаются специалисты в сфере.
Приходите учиться бесплатно
Реклама АНО ДПО «Образовательные технологии Яндекса»
Объяснение:
Функция capitalize()
в Python делает первую букву строки заглавной, а остальные буквы строчными
В данном случае, строка "abc DEF"
преобразуется в "Abc def"
Объяснение:
Когда мы преобразуем строку "20_23"
в число с плавающей точкой с помощью функции float()
, символ подчёркивания в Python может использоваться для группировки цифр в числах, делая их более читаемыми
В этом контексте, "20_23"
читается как 2023
, поэтому float(var)
вернёт 2023.0
Объяснение:
Когда мы пытаемся сложить два множества в Python с использованием оператора +
, это вызывает ошибку, потому что оператор +
не определён для множеств
Вместо этого, для объединения множеств в Python используется метод union()
или оператор |
Объяснение:
В данном коде мы пытаемся присвоить атрибут item
объекту lst
, который является экземпляром класса list
Однако в Python стандартные типы данных, такие как списки, не поддерживают присвоение произвольных атрибутов
По этой причине, когда мы пытаемся выполнить lst.item = lst
, возникает исключение AttributeError
Объяснение:
В Python метод .reverse()
используется для изменения порядка элементов списка на обратный. Этот метод изменяет исходный список
Объяснение:
Код выше выдаст TypeError
, потому что кортежи в Python являются неизменяемыми объектами и не поддерживают присвоение значений их элементам
Объяснение:
Метод capitalize()
делает первую букву строки заглавной, а остальные строчными, получается "А есть ли подвох?"
Метод title()
делает заглавной первую букву каждого слова, получается "А Есть Ли Подвох?"
Символ под индексом 10
в обеих строках — это 'п'
, просто в разном регистре, поэтому при сложении x[10] + y[10]
получается "пП"
Объяснение:
В данном коде создаётся объект var
класса SecondClass
, который наследуется от FirstClass
Метод __init__
в SecondClass
вызывает метод __init__
в FirstClass
с помощью функции super()
, устанавливая значения self.__i
и self.j
в 1
и 5
соответственно, а затем переопределяет их значения на 2
и 7
Однако переменная self.__i
в SecondClass
не переопределяет self.__i
в FirstClass
из-за двойного подчеркивания, которое делает эту переменную «приватной»
Поэтому, когда вызывается метод display
из FirstClass
, он печатает значение self.__i
и self.j
из FirstClass
, а не из SecondClass
. Отсюда и ответ — 1 7
Объяснение:
Код выше использует функцию filter()
, чтобы отфильтровать элементы списка lst
, применяя функцию func()
к каждому из них
В свою очередь, функция func()
возвращает True
для значений меньше 1
и False
для значений больше или равных 1
Поэтому, когда filter()
применяется к lst
с помощью func()
, он сохраняет только те элементы, для которых func()
возвращает True
Объяснение:
Когда мы берём срез text[3:]
, мы получаем все символы, начиная с четвёртого (индексация с 0
), то есть "?!"
Когда же мы работаем со срезом text[:3]
, мы получаем уже первые три символа строки, то есть "why"
Затем мы соединяем два полученных среза, сначала "?!"
и потом "why"
, что даёт итоговую строку "?!why"
Объяснение:
Для инверсии объектов в списке «на месте» в Python используется метод reverse()
Он изменяет порядок элементов в списке на обратный. «На месте» означает, что изменения происходят в том же списке, а не создаётся новый
Таким образом, после применения метода reverse()
, исходный список будет содержать элементы в обратном порядке
Объяснение:
Ответ hello, world
получается из-за того, как строка форматируется с использованием переменных
В коде у нас две переменные: text1
со значением wor
и text2
со значением ld
Когда мы используем оператор форматирования %s%s
в строке hello, %s%s
, он заменяет каждый %s
на значения text1
и text2
соответственно. Таким образом, wor
и ld
объединяются, и мы получаете hello, world
Объяснение:
Код устроен достаточно просто: сначала вызывается функция func_(3)
, которая принимает значение 3
и возвращает 3 + 3 = 6
Затем результат 6
передаётся в функцию in_(6)
, которая умножает его на 3
, получая 6 х 3 = 18
В итоге, результат 18
передаётся в функцию func(18)
, которая просто возвращает его обратно, так что конечный результат — 18
Объяснение:
num1 определён как кортеж
(tuple
) с двумя элементами: 0
и 3
. Когда мы умножаем кортеж на число n
, Python повторяет кортеж n
раз
В данном случае, мы умножаем кортеж (0, 3)
на 3
, что приводит к повторению кортежа три раза: (0, 3, 0, 3, 0, 3)
Объяснение:
Когда мы создаём tuple1 = (0)
, на самом деле создается не кортеж, а целое число. Поэтому строка tuple1 += 1
увеличивает это значение на 1
, и tuple1
теперь равно 1
А вот tuple2
это уже кортеж, и когда мы пытаетемся сложить tuple1
и tuple2
, Python не знает, как сложить целое число и кортеж, что приводит к ошибке
Объяснение:
Цикл for i in range(10)
повторяется 10 раз. Внутри этого цикла другой цикл for j in range(-1, -10, -1)
повторяется 9 раз (от -1 до -9 включительно)
Таким образом, внутренний блок кода (где num += 1
) выполняется 10 * 9 = 90
раз. Это и даёт ответ 90
Объяснение:
Ответ 0
, потому что lst1
и lst2
— это два разных объекта в памяти, даже если их содержимое одинаково
Оператор is
проверяет идентичность объектов, а не их равенство
Таким образом, lst1 is lst2
возвращает False
, что при преобразовании в int
даёт 0
Объяснение:
Когда мы создаём словарь var
с ключом float('nan')
, у нас есть один элемент в словаре
Однако, когда мы пытаемся обновить значение этого ключа с помощью var[float('nan')] = 2
, Python не считает float('nan')
и float('nan')
одинаковыми ключами из-за того, что NaN
не равно самому себе по определению в стандарте IEEE 754 для плавающей точки
Таким образом, вместо обновления существующего значения, Python добавляет новую пару ключ-значение в словарь, и теперь у нас есть два элемента в var
. Это и приводит к тому, что len(var)
возвращает 2
Объяснение:
В Python, булевы значения True
и False
эквивалентны целым числам 1
и 0
соответственно. Поэтому True == 1
и False == 0
возвращают True
Когда вы складываете булевы значения, они интерпретируются как числа: True + True + True
равно 3
и True + False + False
равно 1
Однако None
не эквивалентен нулю, поэтому None == 0
возвращает False
Росатом приглашает на должность Аналитик BI в IT-интегратор “Гринатом” на проект импортозамещения хранилища данных с SAP BW/BI на Форсайт.
В обязанности будет входить выполнение работ по классическому проекту: уточнение требований, проектирование, разработка, тестирование, опытная и промышленная эксплуатация.
Стек: Форсайт, Postgres Pro, Fore, SQL, Python, Arenadata (Greenplum, ClickHouse, NiFi)
Требования: навыки проектирования и разработки BI/DWH/ETL, а также создания интеграции с внешними системами (1C ERP, MS Excel, OpenOffic и др.); уверенное владение SQL; опыт проектной и пользовательской документации; навыки работы по стандартам проектной деятельности (waterfall, agile).
Гринатом предлагает: конкурентную ЗП и прозрачную систему премий; 5/2 с сокращенной пятницей и 31 день ежегодного отпуска; офис на м. Нагатинская с возможностью удаленки; ДМС и скидки на фитнес; возможность обучения в Корпоративной академии и участия в тренингах, конференциях и онлайн-курсах; неформальную корпоративную культуру и профессиональный рост вместе с компанией.
Узнать подробнее и откликнуться на вакансию можно по ссылке.
#вакансия #работа