3 задачи с подвохом на Python с решением и комментариями
Иногда очевидные вещи не настолько очевидные, как могут показаться на первый взгляд.
И если результат работы кода из нескольких тысяч строк оценить беглым взглядом сложно, то когда перед глазами 3-5 строчек, кажется, что точно знаешь ответ и подвоху спрятаться негде.
Изображение Alicja с сайта Pixabay
Но не всегда стоит быть в этом уверенным. Поскольку мозг человека не всегда следует алгоритмам, по которым действует программа, часто упрощая, или наоборот, усложняя процесс реализации.
Вот первый пример:
Изображение автора
Как считаете, что выведет print()?
Варианты ответов:
* 10
* 6
* Error
Правильный ответ: 6
Дело в том, что метод append добавит только один элемент, который будет состоять из копии первоначального списка.
То есть список будет выглядеть следующим образом: [1, 2, 3, 4, 5, [1, 2, 3, 4, 5]].
Количество его элементов, соответственно, 6.
Второй пример:
Изображение автора
Как считаете, что выведет print()?
Варианты ответов:
* [0, 1, 2, 3, 4]
* [1, 3]
* []
Правильный ответ: [1, 3]
Дело в том, что после того, как цикл обратился к элементу с индексом 0, который равен 0 и удалил его из списка при помощи метода remove(), цикл "берет" элемент с индексом 1, а это после удаления первого элемента уже 2.
Так же "выходит из-под удара" и тройка.
Третий пример:
Изображение автора
Как считаете, что выведет print()?
Варианты ответов:
* 4
* 6
* Error
Правильный ответ: Error
Тут все довольно просто. Дело в том, что применение "+" к типу set не корректно.
Для правильного осуществления данной операции нужно применять метод union().
И тогда все будет работать, а print() выведет 4:
Изображение автора
(Изображение для мобильной версии Olaf с сайта Pixabay)
Мы используем cookie-файлы, чтобы улучшить сервисы для вас. Если ваш возраст менее 13 лет, настроить cookie-файлы должен ваш законный представитель. Больше информации
Нет комментариев