💡 Инструкция: Версия: CPython 3.12. Выберите один ответ из четырёх. На 20 вопросов отведено не меньше 40 минут; код лучше читать построчно. После завершения вы увидите общий процент, четыре тематические шкалы и объяснение каждого ответа.
Вопрос 2 из 20
Проследите обе позиции `if` во фрагменте. Какие два списка будут напечатаны?
Python Копировать
values = [-2, -1, 0, 1, 2]
a = [x if x > 0 else 0 for x in values]
b = [x for x in values if x > 0]
print(a, b)
[0, 0, 0, 1, 2] [1, 2]
[0, 0, 1, 2] [1, 2]
[0, 0, 0, 1, 2] [0, 1, 2]
[1, 2] [0, 0, 0, 1, 2]
Вопрос 3 из 20
В каком порядке появятся пары?
Python Копировать
pairs = [(i, j) for i in range(2) for j in range(3) if i != j]
print(pairs)
[(0, 1), (1, 0), (0, 2), (1, 2)]
[(0, 1), (0, 2), (1, 0), (1, 2)]
[(1, 0), (2, 0), (0, 1), (2, 1)]
[(0, 0), (1, 1)]
Вопрос 4 из 20
Определите тип `gen`, затем учтите его однократное потребление. Какие три значения появятся в выводе?
Python Копировать
gen = (x * 2 for x in range(3))
print(type(gen).__name__, list(gen), list(gen))
tuple (0, 2, 4) (0, 2, 4)
generator [0, 2, 4] [0, 2, 4]
generator [0, 2, 4] []
list [0, 2, 4] [0, 2, 4]
Вопрос 5 из 20
Что выведет вложенное включение?
Python Копировать
matrix = [[1, 2], [3, 4], [5, 6]]
flat = [value for row in matrix for value in row]
print(flat)
[6, 5, 4, 3, 2, 1]
[1, 3, 5, 2, 4, 6]
[1, 2, 3, 4, 5, 6]
[[1, 2], [3, 4], [5, 6]]
Вопрос 7 из 20
Внутренний `range` зависит от текущего `i`. Какой точный список пар создаст фрагмент?
Python Копировать
result = [(i, j) for i in range(4) for j in range(i)]
print(result)
[(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)]
[(0, 0), (1, 0), (2, 0), (3, 0)]
[(1, 0), (2, 0), (2, 1), (3, 0), (3, 1), (3, 2)]
[(1, 1), (2, 2), (3, 3)]
Вопрос 12 из 20
Что выведет транспонирование?
Python Копировать
matrix = [[1, 2, 3], [4, 5, 6]]
transposed = [[row[i] for row in matrix] for i in range(3)]
print(transposed)
[[1, 2], [3, 4], [5, 6]]
[[1, 4], [2, 5], [3, 6]]
[[4, 1], [5, 2], [6, 3]]
[[1, 2, 3], [4, 5, 6]]
Вопрос 13 из 20
Проследите вычисление остатков и удаление повторов. Какой набор значений будет выведен после сортировки?
Python Копировать
values = [1, 2, 2, 3, 4]
result = {x % 3 for x in values}
print(sorted(result))
[1, 2, 0, 1]
[1, 2, 2, 0, 1]
[0, 1, 2]
[0, 1]
Вопрос 16 из 20
Какой список получится?
Python Копировать
result = [i * j for i in range(1, 4) for j in range(1, i + 1)]
print(result)
[1, 2, 3, 2, 4, 6, 3, 6, 9]
[1, 4, 9]
[1, 2, 3, 4, 6, 9]
[1, 2, 4, 3, 6, 9]
Вопрос 18 из 20
Что выведет распаковка внутри включения?
Python Копировать
pairs = [(1, 2), (3, 4)]
result = [a + b for a, b in pairs]
print(result)
[3, 7]
[4, 6]
[1, 2, 3, 4]
[(1, 2), (3, 4)]
Вопрос 20 из 20
Что произойдёт при вложенном включении с условием?
Python Копировать
values = [1, 2, 3]
result = [(a, b) for a in values for b in values if a < b]
print(result)
[(2, 1), (3, 1), (3, 2)]
[(1, 2), (1, 3), (2, 3)]
[(1, 1), (2, 2), (3, 3)]
[(1, 2), (2, 3)]