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

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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Как и все составные операторы, оператор class начинается со строки заголовка с именем класса, после чего следует тело с одним или несколькими вложенными операторами, (обычно) набранными с отступом. В приведенном примере вложенными операторами являются def; они определяют функции, которые реализуют поведение класса, предназначенное для экспортирования.

def на самом деле представляет собой присваивание. В примере операторы def присваивают объекты функций именам setdata и display в области видимости оператора class, а потому генерируют атрибуты, присоединяемые к классу — FirstClass.setdata и FirstClass.display. В действительности любое имя, присвоенное на верхнем уровне вложенного блока класса, становится атрибутом этого класса.
Мы тут с опросом про работодателей. Какой рэдфлаг хуже?
Anonymous Poll
14%
Переработки
12%
Серая зарплата
34%
Задержки зарплаты
40%
Токсичная атмосфера
Выводится тип объекта и его адрес в памяти, потому что в методе display() вы печатаете сам объект (self), а не его атрибут data.

Если добавить атрибут .data в вывод display, то выведется «Москва»:

class MyClass():
def setdata(self, value):
self.data = value
def display(self):
print(
self.data)

x = MyClass()
x.data = 'Москва'
x.display() # Москва
Код выведет 'Bob', потому что res — это класс, и ему присваивается атрибут name на уровне класса (res.name = 'Bob'). Затем создаётся экземпляр x = res(), у которого нет собственного атрибута name. При вызове x.name интерпретатор ищет атрибут сначала в экземпляре x, затем в его классе res. Поскольку у res есть атрибут name, возвращается 'Bob'. Это пример наследования атрибутов экземпляром от класса.
Как получить список базовых (родительских) классов класса Second?
Anonymous Quiz
24%
Second.__bases__
48%
Second.__superclass__
20%
Second.__dict__
8%
Никак
В Python каждый класс хранит кортеж своих непосредственных родительских (базовых) классов в атрибуте `__bases__`. Чтобы получить список базовых классов для класса `Second`, нужно обратиться к `Second.__bases__`. Атрибут `__superclass__` не существует в Python и вызовет ошибку. Атрибут `__dict__` содержит пространство имён класса, но не предоставляет информацию о базовых классах. Таким образом, верный способ — использовать `Second.__bases__`.
🔍 Что выведет код?
Anonymous Quiz
18%
1
10%
2
23%
3
49%
Error
При наличии в источнике данных хотя бы одного отсутствующего значения библиотека pandas преобразует все целочисленные значения в значения с плавающей точкой.
Что выведет код?
Anonymous Quiz
42%
15
12%
None
16%
nan
30%
Error
🌱 Что выведет код?
Anonymous Quiz
53%
1
30%
2
9%
3
7%
Error
Вселенная пушит тебе знаки…

Стоит ли сегодня деплоить на прод, начинать новый проект или лучше затаиться и почистить кэш? Вытащи карту из нашей цифровой колоды и получи мудрый совет судьбы перед новым релизом, багфиксом или планёркой.

Реклама
Звёздочка *b забирает "середину" — всё, что между первым и последним элементом.
Знакомьтесь — OTP Tech

Канал про IT в ОТП Банке. Если хочешь быть в теме и знать, как современные технологии и решения работают в международном финтехе, то подписывайся на OTP Tech.

Ребята активно развиваются, внедряют современные решения вроде ИИшек, заблаговременно думают о рисках и, например, первыми в России перешли на процессинг Solar, а еще активно формируют культуру работы с данными. И это только верхушка того, чем эксперты начали делиться у себя в ТГ. Подписывайтесь и добавляйте канал в папку «Полезное».

Подписаться

Это #партнёрский пост
У нас есть Series с числами: [1, 2, 3, np.nan, 4, 5]. Когда мы вызываем numbers.sum(skipna=False), мы явно указываем, что НЕ хотим пропускать значения nan. В этом случае, любая арифметическая операция с nan (включая суммирование) даст результат nan. Любая арифметическая операция с nan всегда возвращает nan