uk
Feedback
Python: задачки и вопросы

Python: задачки и вопросы

Відкрити в Telegram

Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media

Показати більше
7 128
Підписники
-424 години
+87 днів
-230 день
Архів дописів
🔍 Что выведет код?
Anonymous voting

photo content

Когда мы объявляем класс и добавляем атрибуты в slots, Python не создает для этого класса обычный словарь. Вместо этого он использует фиксированное количество слотов для хранения атрибутов. При создании экземпляра класса Python не создает для объекта словарь атрибутов, а использует структуру с фиксированными слотами:

class Point:
    slots = ['x', 'y']  # Только два атрибута: x и y

    def __init__(self, x, y):
        self.x = x
        self.y = y

# Создаем объект
p = Point(3, 4)

# Доступ к атрибутам
print(p.x)  # 3
print(p.y)  # 4

# p.z = 5  # AttributeError: 'Point' object has no attribute 'z'
Попытка присвоить атрибут z, которого нет в slots, вызовет ошибку, поскольку его нет в "разрешенных" атрибутах класса.

match ожидает кортежи из двух элементов в шаблонах типа (x, y). Однако в point передан кортеж из трех элементов (1, 2, 3). Так как ни один шаблон не может соответствовать кортежу из трех элементов, выполнение просто не совпадет с никаким case, и Python не выполнит ни одно из условий. При отсутствии дополнительного case _: (поймающего все прочие случаи), ничего не выведется.

Что выведет код?
Anonymous voting

Что выведет код?
Anonymous voting

photo content

photo content

T — это дженерик: тип переменной x будет передан дальше без изменений. repeat_element(5, 3) вызывает функцию с x = 5 и times = 3. Функция возвращает список из трёх элементов, каждый из которых равен 5. Следовательно, результат — [5, 5, 5].

🔍 Что выведет код?
Anonymous voting

photo content

Python пытается понять, что такое MyClass, но его еще нет:

def func(x: MyClass) -> None:  # Ошибка: MyClass еще не определен
    ...
    
class MyClass:
    ...
from __future__ import annotations делает так, что все аннотации типов воспринимаются как строки. Это позволяет использовать поздние ссылки (на классы, которые еще не объявлены) — User. То есть Python не будет сразу требовать, чтобы MyClass уже был определен. Он просто запомнит строку MyClass и разберется с этим позже, когда все классы уже будут объявлены.

🔍Что выведет код?
Anonymous voting

photo content

/ (косая черта) обозначает только позиционные параметры. Аргументы перед ней должны передаваться позиционно и не могут использоваться как ключевые аргументы. Когда мы вызываем:

print(greet("Alice"))
происходит следующее: — "Alice" передается как позиционный аргумент name. — greeting не передан явно, поэтому используется значение по умолчанию "Hello". — Формируется строка: "Hello, Alice!"

🔍Что выведет код?
Anonymous voting

photo content

Мы передаем строку "10" в функцию get_value. Что происходит в функции: — x — это строка (str). — Функция проверяет тип через isinstance(x, str) — условие срабатывает. — Выполняется операция x + "1", то есть обычная конкатенация строк. "10" + "1" = "101"

H3LLO․CLOUD вконец упоролись и дают две вируталки на год БЕСПЛАТНО • Две виртуалки с 2 ядрами. • 4 Гб оперативки DDR5. • 50 Гб объектного хранилища. • 40 Гб сетевого диска. • Белый статический IP (конечно, v4). • И даже балансировщик нагрузки! Это первое подобное предложение на российском рынке. Они просто знают, что стоит вам попробовать настоящее облако с двумя машинами — и вас будет ломать возвращаться к убогим хостингам. Две машины — это уже отказоустойчивая система. Можно запустить реальный проект: блог на 10к+ посещений, небольшой магазин или корпоративный сайт. И всё это без покупки железа и головной боли с настройкой. Базы данных тоже включены, так что можно забыть о мучениях с Postgres, Mongo и прочим добром. Когда вы почувствуете, как легко и приятно с этим всем работать, — всё, приехали, вы не сможете от этого отказаться. А ещё скоро H3LLO․CLOUD добавят бесплатный Kubernetes — 3 месяца простенького кластера и месяц полноценного. Единственное условие: чтобы получить все плюшки, включая белый IP, нужно пополнить счёт на 5000 ₽. Это не плата, это защита от криптомайнеров и торрент-раздавальщиков. Деньги останутся на вашем счету. «А что если я создам 100 аккаунтов и буду пользоваться бесплатно вечно?» Ну, попробуйте. У H3LLO․CLOUD есть специальный человек Серёжа, который каждое утро приходит, пьёт кофе и ищет таких умников. А ещё у H3LLO․CLOUD есть нейросеть, но про неё Серёже не говорят — пусть думает, что незаменим. Короче, заходите, тестируйте, ломайте. H3LLO․CLOUD готовы! А чтобы первыми узнать о подобных предложениях — подписывайтесь на канал! Это тоже бесплатно. Реклама. Рекламодатель: ООО «ХЕЛОУ», ИНН 9704228431, erid:2W5zFHCRnw2

🔍 Что выведет код?
Anonymous voting