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

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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Что выведет код?
Anonymous Quiz
42%
True
6%
False
44%
2
8%
Ничего
В Python числа считаются истинными значениями, то есть в определенных обстоятельствах их можно использовать как эквивалент True.

В случае с оператором or будет возвращен левый операнд, если он истинный. В противном случае возвращается правый операнд.

Как только найден первый удовлетворяющий условию операнд, наступает «укороченная оценка», то есть определение результата выражения прекращается, как только результат становится известным.
Запустится ли этот код без ошибки?
Anonymous Quiz
72%
Да
28%
Нет
В версиях Python 3.X вместо любого выражения допускается использовать многоточие ... (буквально, три точки, следующие друг за другом). Многоточие само по себе не выполняет никаких действий, поэтому его можно использовать как альтернативу инструкции pass, в частности вместо программного кода, который будет написан позднее, – своего рода примечание «TBD» (To Be Done – подлежит реализации).
Будет ли выведена надпись "Цикл завершен"?
Anonymous Quiz
38%
Да
49%
Нет
13%
Этот код вызовет ошибку
Циклы for начинаются со строки заголовка, где указывается переменная для присваивания (или – цель), а также объект, обход которого будет выполнен. Вслед за заголовком следует блок (обычно с отступами) инструкций, которые требуется выполнить:

 <target> in <object>: # Связывает элементы объекта с переменной цикла
<statements> # Повторяющееся тело цикла: использует переменную цикла
else:
<statements> # Если не попали на инструкцию ‘break’


Блок else не выполнится, если цикл был прерван с помощью оператора break.
Чтобы получить каждый второй символ из строки S, можно извлечь срез с шагом (страйдом) 2:

>>> S = ‘abcdefghijk’
>>> for c in S[::2]: print(c, end=’ ‘)
... a c e g i k
Длина списка, возвращаемого функцией zip, равна длине кратчайшей из последовательностей, если аргументы имеют разную длину. В задаче выше выполняется объединение двух строк с целью параллельной обработки их символов, при этом результат содержит столько кортежей, сколько было
элементов в кратчайшей последовательности.
Функция enumerate возвращает объект-генератор, который позволяет итерироваться по значению, создаваемому в процессе выполнения кода, без необходимости загружать все значения в память сразу. Это особенно полезно для работы с большими и динамически генерируемыми наборами данных.

E = enumerate(S)
E # <enumerate object at 0x02765AA8>


В контексте задачи выше c — каждая из букв 'spam', i — её индексы в строке. Первый элемент результирующего списка равен пустоте, потому что c * i = 's' * 0 ('s' повторяется 0 раз).

В дальнейшем индексы повторяют буквы p, a и m по 1, 2 и 3 раза соответственно (перемножение строки и целого числа дает повторение строки).