Python: задачки и вопросы
Відкрити в Telegram
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media
Показати більше6 949
Підписники
-224 години
-127 днів
-6230 днів
Архів дописів
Объяснение:
Когда мы создаем новую переменную ls с помощью ls = list(l1), объект ls становится новым списком, содержащим те же элементы, что и l1. Однако важно понимать, что это поверхностное копирование.
То есть, элементы внутри списка l1 (которые также сами являются списками) не копируются глубоко; вместо этого в новый список ls копируются лишь ссылки на те же самые внутренние списки.
Например, если вы измените внутренний список в ls, это изменение отразится и в l1, поскольку оба списка ссылаются на одни и те же внутренние объекты.
Объяснение:
В результате мы получим False. Это происходит из-за ограниченной точности представления чисел с плавающей точкой в компьютере. Хотя может показаться, что сумма 0.1 и 0.2 должна быть равной 0.3, на самом деле в двоичном представлении эти числа являются бесконечными дробями, что ведет к небольшим ошибкам при их складывании.
Сложив 0.1 и 0.2, мы получаем число, очень близкое к 0.3, но не точно равное ему:
0.30000000000000004Как же тогда сравнивать числа с плавающей точкой в Python? Используйте функцию math.isclose() из модуля math:
import math
print(math.isclose(0.1 + 0.2, 0.3))
Функция math.isclose позволяет учитывать небольшие неточности вычислений, которые возникают из-за особенностей представления чисел с плавающей запятой.Объяснение:
Во второй строке
b = r'\' возникает ошибка, так как в "сырой" (raw) строке r'\' обратный слеш должен сопровождаться другим символом, который мы хотели бы экранировать. Такой синтаксис неверен в Python.
Чтобы вспомнить как работают сырые строки можете обратиться к нашему прошлому объяснениюОбъяснение:
Функция setattr() устанавливает значение атрибута указанного объекта по его имени.
Это аналог функции getattr(). Аргументами являются объект object, строка с именем name атрибута и произвольное значение value устанавливаемого атрибута.
Имя name должно быть именем существующего атрибута или будет создан новый атрибут. Функция присвоит значение атрибуту, если объект позволяет это. Например setattr(x, 'foobar', 123), эквивалентно x.foobar = 123
Дополнительная информация
— Для возвращения атрибута используется getattr().
— Для удаления атрибута используется delattr().
— Для проверки существования атрибута используется hasattr().
Объяснение:
slice() возвращает объект, представляющий срез/часть последовательности, которая будет следовать шаблону, указанному в аргументах. Возвращаемый объект среза представляет новый набор индексов начальной последовательности, заданных диапазоном start, stop, step, как в range(). Потому в данном случае правильный ответ [3, 12]
Объяснение:
Функция
join() не меняет исходный список — она создаёт новую строку. Поэтому чтобы сохранить результат выполнения функции, его надо было присвоить переменной
По итогу мы выводим на печать изначальный список var, который никак не изменилсяОбъяснение:
Функция bool() возвращает True, если передаваемый ей аргумент не равен нулю. Строка "False" и есть подобный ненулевой аргумент
Получается, что var_one равен True, а var_two — False
