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
Объяснение:

В Python, метод new отвечает за создание объекта, а метод init используется для инициализации объекта после его создания

Эти два метода взаимодействуют в процессе создания объекта класса
Каким будет результат выполнения кода выше?
Anonymous Quiz
22%
Syntax Error
6%
Type Error
37%
I’m going to drive on my own!
35%
I need a driver!
Объяснение:

Всё объяснение заключается в том, что троеточие («...») по сути «истинно». Да, это действительно так!

Посмотрите:
>>> bool(...)
True


В свою очередь логический оператор or вернет True если хотя бы один из его операндов истинный:

>>> bool(age >= 18 or ...)
True
>>> bool(age >= 18)
False
>>> bool(...)
True


Таким образом и получаем ответ I'm going to drive on my own!
Объяснение:

Функция count в Python используется для подсчёта количества вхождений определённого элемента в последовательности. Это может быть полезно, когда вам нужно узнать, сколько раз определённое значение встречается в строке, списке, кортеже.
Каким будет результат выполнения кода выше?
Anonymous Quiz
50%
True
46%
False
2%
None
3%
Error
Объяснение:

В Python строки являются неизменяемыми объектами и иногда для оптимизации Python использует один и тот же объект для хранения идентичных строковых литералов

Но это не гарантировано для строк, созданных динамически или через операции, как в данном примере с конкатенацией

Оператор is проверяет идентичность объектов, а не их эквивалентность. А так как z и "123456" — это разные объекты в памяти, даже если их значения одинаковы, то и ответ у нас False
Каким будет результат выполнения кода выше?
Anonymous Quiz
5%
'P'
3%
'p'
55%
-1
37%
0
Объяснение:

Метод find() возвращает индекс первого вхождения указанного символа или подстроки в строке. Если символ или подстрока не найдены, метод find() возвращает -1

Так как в Python нет символа p, то и ответ у нас -1
Каким будет результат выполнения кода выше?
Anonymous Quiz
77%
True
6%
False
16%
Syntax Error
2%
Ничего из вышеперечисленного
Объяснение:

В квизе есть ошибка! Конечно, нужно немного знать язык, чтобы её увидеть. Но анализ кода и диагностика проблем — ВАЖНАЯ часть становления крутым разработчиком.

Если вы запустите этот код в Python 3.10 или выше, Python постарается указать вам, что не так с кодом:
>>> x = True
>>> y = False
>>> print(x == not y)
File "<stdin>", line 1
print(x == not y)
^^^
SyntaxError: invalid syntax

Как видите, что-то не так с оператором not в приведённом выше коде.

Можно исправить код так:
>>> x = True
>>> y = False
>>> print(x != y)
True


Здесь используется != для проверки, что x не равно y.

Другой способ "исправить" этот код — добавить дополнительные скобки:
>>> x = True
>>> y = False
>>> print(x == (not y))
True


В этом примере "not y" находится в скобках и сравнивается с x. Оба решения — хороший способ заставить код работать.
Каким будет результат выполнения кода выше?
Anonymous Quiz
35%
Found C++!
51%
C++ not found!
13%
Ничего из вышеперечисленного
Объяснение:

Что же возвращает метод строки find()? Самый быстрый способ это узнать — прочитать документацию. Согласно документации по Python, если подстрока не найдена, find() возвращает -1.

С этим знанием в голове, попробуйте выполнить следующий код:
print(bool(-1)) # выведет:True


Как видите, при преобразовании -1 в логическое значение (Boolean), оно возвращается как True.

Поэтому в приведенном выше коде, когда подстрока "C++" отсутствует, метод find() возвращает -1,
что оценивается как True, и поэтому выводится: "Found C++!".
Каким будет результат выполнения кода выше?
Anonymous Quiz
6%
42
70%
42.0
2%
None
23%
Error