Python знаешь, а если проверю?
Всем привет, в этой статье будут описаны 10 задачек, примеры кода, которые могут ввести новичка в заблуждение, удачи!
Задача 1:
Варианты ответов:
В этой задаче список a расширяется оператором +=, который изменяет сам объект списка. Поскольку переменная b ссылается на тот же объект списка, что и a, изменения отражаются и в b.
Правильный ответ: 1
Задача 2
Варианты ответов:
В функции func аргумент x по умолчанию является изменяемым объектом (списком). При повторных вызовах функции значение аргумента x сохраняется между вызовами, поэтому изменения, внесенные в одном вызове, видны в следующем.
Правильный ответ: 3
Задача 3
Варианты ответов:
В Python для малых целых чисел используется механизм кэширования. Поэтому переменные x и y, хоть и созданы независимо, указывают на один и тот же объект в памяти.
Правильный ответ: 1
Задача 4
Варианты ответов:
В Python механизм кэширования не применяется к большим целым числам. Поэтому переменные a и b не указывают на один и тот же объект в памяти, но тут ещё играет ключевую роль арифметики с переменной b.
Правильный ответ: 2
Задача 5
Варианты ответов:
В Python малые строки также могут кэшироваться, поэтому переменные a и b указывают на один и тот же объект в памяти.
Правильный ответ: 1
Задача 6
Варианты ответов:
Переменная dict2 ссылается на тот же словарь, что и dict1, поэтому изменения, внесенные в dict1, отражаются и в dict2.
Правильный ответ: 1
Задача 7
Варианты ответов:
Этот код вызовет ошибку IndexError, так как индекс 6 находится за пределами диапазона строки "python"
Правильный ответ: 3
Задача 8
Варианты ответов:
Поскольку объект класса Person определен с помощью __slots__, добавление нового атрибута address вызовет ошибку.
Правильный ответ: 2
Задача 9:
Варианты ответов:
Ошибка, потому что при вызове super().__init__() у класса C происходит вызов конструктора только у первого суперкласса, то есть у A, поэтому атрибут b отсутствует у объекта obj.
Правильный ответ: 3
Задача 10:
Варианты ответов:
Метод hello() в классе D наследуется от класса C, поэтому при вызове D.hello() будет использована реализация из класса C.
Правильный ответ: 2
Если ты ошибся хоть в одной задачке то вступай в мой тг канал PythonЗнаешь, чтобы не ошибиться в следующий раз, а если ты всё это уже знал, то все равно вступай, может узнаешь что-то новое!