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

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

Открыть в Telegram

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

Больше
6 951
Подписчики
-224 часа
-127 дней
-6230 дней
Архив постов
Объяснение: Первый шаг к пониманию того, что происходит в этом странном коде — это взглянуть на то, что нам говорит PEP 380⁴⁰ об использовании return с yield. Кратко говоря, return expr в генераторе вызывает исключение StopIteration(expr) при выходе из генератора. В данном случае исключение StopIteration происходит при выполнении функции my_func(), когда используется оператор return. Это исключение перехватывается вызовом функции list() в конце кода. Когда происходит исключение, значение ["Python"] не возвращается, а функция list() возвращает пустой список. Если вы хотите получить ["Python"] из этого кода, нужно изменить вызов функции, используя next() и обернув его в обработчик исключений:
def my_func(value):
    if value == 5:
        return ["Python"]
    else:
        yield from range(value)

try:
    next(my_func(5))
except StopIteration as exception:
    print(f"StopIteration пойман! {exception.value = }")
Этот код удаляет вызов list(), который автоматически перехватывает исключение StopIteration, и использует функцию next(). Функция next() не перехватывает исключение StopIteration, поэтому необходимо обернуть этот вызов конструкцией try/except, чтобы самостоятельно обработать это исключение. А для получения значения из исключения можно воспользоваться атрибутом value объекта exception.

Каким будет результат выполнения кода выше?
Anonymous voting

Объяснение: Функция func() реализует рекурсивное вычисление факториала числа n. Факториал числа определяется как произведение всех натуральных чисел от 1 до n включительно. Факториал 0 равен 1 по определению

Каким будет результат выполнения кода выше?
Anonymous voting

Объяснение: GIL (Global Interpreter Lock) — это механизм, который не позволяет более чем одному потоку одновременно выполнять нативный код Python Это создаёт проблемы с производительностью в многопоточных программах, так как потоки не могут выполняться параллельно на разных ядрах процессора

GIL (Global Interpreter Lock) в Python — это механизм,
Anonymous voting

Каким будет результат выполнения кода выше?
Anonymous voting

Объяснение: sum(iterable, start) — функция sum() принимает на вход лишь итерируемые объекты, то есть объекты, которые способны возвращать элементы по одному Так как ни int, ни float таковыми не являются, то у нас здесь ошибка

Каким будет результат выполнения кода выше?
Anonymous voting

Объяснение: Что же возвращает метод строки find()? Самый быстрый способ это узнать — прочитать документацию. Согласно документации по Python, если подстрока не найдена, find() возвращает -1. С этим знанием в голове, попробуйте выполнить следующий код:
print(bool(-1)) # выведет:True
Как видите, при преобразовании -1 в логическое значение (Boolean), оно возвращается как True. Поэтому в приведенном выше коде, когда подстрока "C++" отсутствует, метод find() возвращает -1, что оценивается как True, и поэтому выводится: "Found C++!".

Каким будет результат выполнения кода выше?
Anonymous voting

Объяснение: В квизе есть ошибка! Конечно, нужно немного знать язык, чтобы её увидеть. Но анализ кода и диагностика проблем — ВАЖНАЯ часть становления крутым разработчиком. Если вы запустите этот код в 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. Оба решения — хороший способ заставить код работать.

Принимать? А может лучше предпринимать? Ну то есть стать ТехПредом — предпринимателем, который умеет проектировать, разрабаты
Принимать? А может лучше предпринимать? Ну то есть стать ТехПредом — предпринимателем, который умеет проектировать, разрабатывать и выводить на рынок технологичные продукты. Научиться этому вы можете в онлайн-магистратуре МФТИ «Технологическое предпринимательство». Выпускники ведут значимые и интересные проекты в самых разных сферах, от ИТ до биомедицины. Вот пара примеров: — прибор ранней диагностики онкозаболеваний, — инструмент для контроля ИТ-безопасности, — разработка и запуск на европейский рынок робота-садовника, — выведение наклонного рабочего места на международный рынок. А ещё выпускники становятся продакт-менеджерами и руководителями R&D отделов, CEO и CTO. Хотите работать эффективнее или примерить роль основателя бизнеса?  А будет ли конкретно в вашей ситуации польза от сообщества ТехПреда МФТИ? Можно обсудить с преподавателями, а заодно получить полезные контакты студентов и выпускников. Для этого напишите нам в Telegram. это #партнёрский пост

Каким будет результат выполнения кода выше?
Anonymous voting