Python: задачки и вопросы
7.74K subscribers
1.19K photos
1 video
1 file
91 links
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Download Telegram
У вас есть строка s = "Welcome". Какая из следующих операций с этой строкой приведёт к ошибке?
Anonymous Quiz
2%
print(s[0])
4%
print(s.lower())
79%
s[1] = 'r'
15%
print(s.strip())
Объяснение:

Правильный ответ: s[1] = 'r'

Строки в Python неизменяемы, и вы не можете напрямую изменить их элементы. Все остальные варианты возвращают новые, измененные версии строки, оставляя исходную строку s без изменений.
Каким будет результат выполнения кода выше?
Anonymous Quiz
18%
{0:1, 7:0, 1:1, 8:0}
10%
{1:1, 7:2, 0:1, 8:1}
39%
{0:0, 7:0, 1:1, 8:1}
34%
KeyError
Объяснение:

Функция 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}.
Каким будет результат выполнения кода выше?
Anonymous Quiz
30%
()
24%
[]
21%
[0, 1, 2]
24%
Error
Объяснение:

Здесь у нас происходит присваивание с использованием среза lst[:]

Срез [:] представляет всю последовательность элементов списка lst. В данном случае, правая сторона присваивания () представляет пустой кортеж

Когда выполняется операция присваивания lst[:] = (), это означает, что все элементы списка lst будут заменены на элементы из пустого кортежа

Таким образом, список lst становится пустым и его новое значение становится []
Каким будет результат выполнения кода?
Anonymous Quiz
10%
True True
65%
True False
13%
False True
13%
False False
Объяснение:

Функция bool() возвращает True, если передаваемый ей аргумент не равен нулю. Строка "False" и есть подобный ненулевой аргумент

Получается, что var_one равен True, а var_two — False
Каким будет результат выполнения кода?
Anonymous Quiz
15%
['one', 'two', three']
13%
['one', 'two', three', 'four']
61%
onefourtwofourthree
10%
Error
Объяснение:

Функция join() не меняет исходный список — она создаёт новую строку. Поэтому чтобы сохранить результат выполнения функции, его надо было присвоить переменной

По итогу мы выводим на печать изначальный список var, который никак не изменился
Каким будет результат выполнения кода?
Anonymous Quiz
4%
[10, 3, 12, 30, 77]
7%
[10, 3]
66%
[3, 12]
23%
Syntax Error
Объяснение:

slice() возвращает объект, представляющий срез/часть последовательности, которая будет следовать шаблону, указанному в аргументах. Возвращаемый объект среза представляет новый набор индексов начальной последовательности, заданных диапазоном start, stop, step, как в range(). Потому в данном случае правильный ответ [3, 12]
Объяснение:

Функция setattr() устанавливает значение атрибута указанного объекта по его имени.

Это аналог функции getattr(). Аргументами являются объект object, строка с именем name атрибута и произвольное значение value устанавливаемого атрибута.

Имя name должно быть именем существующего атрибута или будет создан новый атрибут. Функция присвоит значение атрибуту, если объект позволяет это. Например setattr(x, 'foobar', 123), эквивалентно x.foobar = 123

Дополнительная информация
— Для возвращения атрибута используется getattr().
— Для удаления атрибута используется delattr().
— Для проверки существования атрибута используется hasattr().