Python: задачки и вопросы
7.72K 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
Каким будет результат выполнения кода?
Anonymous Quiz
10%
0
11%
13
44%
4
36%
-1
Объяснение:

Это задачка на внимательность. В ветке else мы не отнимаем единичку у a, а присваиваем ей значение -1

Поэтому по итогу она и остаётся равной -1
Каким будет результат выполнения кода?
Anonymous Quiz
9%
choco bar
5%
bar bar
2%
choco choco
84%
bar choco
Объяснение:

Тут всё довольно просто. Мы просто меняем значение переменной c на значение переменной d и значение переменной d на c. Как результат получаем — bar choco
Какой из следующих вариантов при печати выдаст ошибку?
Anonymous Quiz
8%
[1, ['Hello'], 1]
52%
{6, [2, 3], 5}
27%
{1: 10, 2: 20, 1: 30}
13%
{10, 20, 10}
Объяснение:

Существует ограничение, что элементами множества (как и ключами словарей) в Python могут быть только так называемые хешируемые (Hashable) объекты. Это обусловлено тем фактом, что внутренняя реализация set основана на хеш-таблицах. Например, списки и словари – это изменяемые объекты, которые не могут быть элементами множеств. Так и получается, что {6, [2, 3], 5} выдаст ошибку
Каким будет результат выполнения кода?
Anonymous Quiz
32%
[1, 2, 3, 4, 5, 6, 7, 8]
8%
[1, 2, 3, 4, 5, 6, 7]
41%
None
19%
[8]
Объяснение:

Что здесь происходит? Разве метод append() не добавляет элемент в конец списка?

Да, метод append() действительно добавляет элемент в конец списка, но при этом сам метод возвращает значение None. А присваивание результата append() обратно переменной со списком приводит к тому, что вместо исходного списка мы получаем None.

Чтобы наш код корректо отработал его небходимо немного изменить:
my_list = list(range(1, 7)) 
my_list.append(8)
print(my_list)
Каким будет результат выполнения кода?
Anonymous Quiz
20%
['00']
40%
['0']
23%
['0', '0']
18%
Error
Объяснение:

При написании нулей подряд ведущие нули в Python игнорируются, поэтому в нашем случае он просто выпадает. Но если после ведущих нулей идут другие цифры, например — 01, 02, 01010101, то Python  и вовсе выдаёт ошибку SyntaxError. 

Однако есть ситуации, когда нам просто необходимо, чтобы они отображались. Например, при работе с датами и временем, номерами страниц и так далее.

Один из наиболее простых способов решить эту проблему — использование функции str.zfill(). Эта функция позволяет добавить ведущие нули к строке. Она принимает один аргумент — количество символов, которые должна содержать строка. Если исходная строка короче, то она заполняется ведущими нулями. Пример её использования на картинке!
Каким будет результат выполнения кода выше?
Anonymous Quiz
34%
H e l l o
25%
H e l o
6%
None
35%
Error
Объяснение:

В данном случае varмножество (set), а множество не умеет выдавать значения по индексу, т.к. элементы в нём хранятся неупорядоченно

Отсюда и ошибка
Каким будет результат выполнения кода выше?
Anonymous Quiz
66%
<class 'str'>
14%
<class 'float'>
2%
<class 'int'>
17%
<class 'tuple'>
Объяснение:

Когда мы присвоили переменной data строку '20.0' в конце поставили запятую, а это значит, что мы создали кортеж с одним элементом. Поэтому и получается <class 'tuple'>