Python: задачки и вопросы
رفتن به کانال در Telegram
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media
نمایش بیشتر6 949
مشترکین
-224 ساعت
-127 روز
-6230 روز
آرشیو پست ها
Объяснение:
Здесь у нас происходит присваивание с использованием среза
lst[:]
Срез [:] представляет всю последовательность элементов списка lst. В данном случае, правая сторона присваивания () представляет пустой кортеж
Когда выполняется операция присваивания lst[:] = (), это означает, что все элементы списка lst будут заменены на элементы из пустого кортежа
Таким образом, список lst становится пустым и его новое значение становится []Объяснение:
В результате мы получим 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 позволяет учитывать небольшие неточности вычислений, которые возникают из-за особенностей представления чисел с плавающей запятой.Объяснение:
Функция enumerate(range(2)) возвращает кортежи (индекс, значение) для каждого элемента в range(2), который содержит числа 0 и 1. Следовательно, цикл имеет два прохода:
Для x = (0, 0):
D[0] = 0 (индекс 0 соответствует значению 0)
D[7] = 0 (значение 0 плюс 7 соответствует индексу 0)
Для x = (1, 1):
D[1] = 1 (индекс 1 соответствует значению 1)
D[8] = 1 (значение 1 плюс 7 соответствует индексу 1)
Следовательно, результирующий словарь будет {0: 0, 7: 0, 1: 1, 8: 1}.
Объяснение:
Правильный ответ: s[1] = 'r'
Строки в Python неизменяемы, и вы не можете напрямую изменить их элементы. Все остальные варианты возвращают новые, измененные версии строки, оставляя исходную строку s без изменений.
У вас есть строка s = "Welcome". Какая из следующих операций с этой строкой приведёт к ошибке?
Объяснение:
Что же здесь происходит? Лучший способ узнать, попробовать поиграться с этим кодом:
print(type({{}})) # Без звёздочки
Вывод:
builtins.TypeError: unhashable type: 'dict'Когда мы не используем звёздочку, Python интерпретирует это как попытку создать вложенный словарь. Однако, вы не можете создать словарь, который содержит другой пустой словарь, так как ключи словаря должны быть хешируемыми. В результате попытка это сделать приведёт к TypeError. Но если вы используете звёздочку с пустым словарем, то Python "распакует" этот словарь, даже если там нечего распаковывать. В итоге мы получаем пустое множество (set). Вот такой вот интересный трюк. Кстати, если вы знаете что-то подобное, то делитесь в комментариях. Может викторину из этого придумаем :)
Объяснение:
Python поддерживает автоматическую сборку мусора (Garbage Collection) для управления памятью. Он также имеет хорошие возможности для интеграции с другими языками и технологиями.
Например с помощью:
— CPython API: Стандартный интерпретатор Python, известный как CPython, предоставляет API для написания C-расширений. Используя эту функциональность, можно писать C-код, который объединяется с Python.
Документация: Python C API
— Jython: Это реализация Python на языке Java. Jython позволяет напрямую использовать Java-классы в Python-коде и создается для исполнения на JVM (Java Virtual Machine).
Официальный сайт: jython.org
Объяснение:
Попались?) В этом коде есть ошибка из-за неправильного отступа, поэтому правильный результат будет Error. Если исправить этот момент, то мы, конечно же, получим 8.
Объяснение:
Подчёркивание — это разделитель, который используется для повышения удобности читаемости, но который игнорируется синтаксисом Python
Поэтому здесь
float() сработал так же, как если бы мы ему передали не '13_37', а '1337'