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

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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Объяснение:

Функция в текущем виде не является корректной Для того чтобы функция не вызывала ошибок, можно сделать одно из следующих действий:

Добавить docstring:

def function():
"""Это функция"""


Добавить любую инструкцию, например, print:

def function():
print

Добавить pass:

def function():
pass

Использовать многоточие (...) для указания на незавершённую функцию:

def function():
...


Все эти варианты являются корректными способами создания пустой функции в Python, которая не вызовет ошибок.
Какой модуль Python поддерживает регулярные выражения?
Anonymous Quiz
79%
re
13%
regex
4%
pyregex
3%
ничего из вышеперечисленного
Объяснение:

Модуль re предоставляет операции сопоставления шаблонов регулярных выражений, аналогичные тем, которые встречаются в языке Perl. re является частью стандартной библиотеки и ее можно импортировать с помощью: import re.
Каким будет результат выполнения кода выше?
Anonymous Quiz
22%
SyntaxError
9%
TypeError
12%
[1, 2, 3]
57%
[1, 2, 3, 1, 2, 3]
Объяснение:

Оператор walrus или как его ещё называют моржовый оператор (:=), позволяет присвоить значение переменной внутри выражения. В данном случае, выражение внутри скобок присваивает список [1, 2, 3] переменной x.

Метод extend добавляет все элементы из переданного списка в конец исходного списка. Таким образом, исходный список [1, 2, 3] удваивается, и получается [1, 2, 3, 1, 2, 3]

Важно:
Синтаксис (x := [1, 2, 3]).extend(x) является допустимым, но не рекомендуемым согласно PEP 572 – Assignment Expressions, так как он может быть неинтуитивным и сложным для понимания.

В комментариях можете поделиться своими вариантами написания данного кода, чтобы он был более понятным
Каким будет результат выполнения кода выше?
Anonymous Quiz
7%
0
6%
2
80%
8
7%
9
Объяснение:

Здесь мы создаём список из чётных чисел от 0 до 8 при помощи генератора списка и условия if i % 2 == 0

Затем извлекается последний элемент из данного списка и его значение присваивается переменной res. Т.к. последний элемент списка — число 8, то и результатом выполнения этого кода будет число 8
Объяснение:

Функция enumerate() в Python — это эффективный инструмент для циклов, создающий пары, состоящие из счётчика и элементов итерируемого объекта. Эти пары упакованы в кортежи.

Пример:
for i, v in enumerate(['a', 'b', 'c']):
print(i, v)
Код выше выведет:
0 a
1 b
2 c


С помощью enumerate() можно начинать отсчёт с любого числа, поэтому в какой то мере последний ответ тоже являлся правильным. Достаточно передать вторым аргументом нужное вам число для начала отсчёта.

Пример:
for i, v in enumerate(['a', 'b', 'c'], start=1):
print(i, v)

Код выше выведет:
1 a
2 b
3 c
Каким будет результат выполнения кода выше?
Anonymous Quiz
1%
{}
9%
Syntax Error
84%
{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}
5%
Ничего из вышеперечисленного
Объяснение:

Функцию enumerate() мы обсудили вчера, поэтому с пониманием ее работы не должно возникнуть вопросов.

Касаемо самой викторины — код использует функцию enumerate() и конструкцию dict comprehension, которые в купе возвращают словарь, где ключами являются индексы символов, а значениями — сами символы. Поэтому правильный ответ: {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}.
Каким будет результат выполнения кода выше?
Anonymous Quiz
48%
True
43%
False
3%
None
5%
Error
Объяснение:

Тут важно понимать, что список, это изменяемый тип данных и q передается в функцию foo по ссылке, а не по значению. Это значит, что любые изменения, сделанные внутри функции также повлияют на q. Тем не менее, сам объект q не изменяет своего местоположения в памяти (его ID остаётся тем же).

Для более глубокого изучения темы:
— Передача аргументов по ссылке и по значению в Python
— Переменные-ссылки в Python

— Понимание переменных Python и управления памятью