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

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

Open in Telegram

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

Show more
7 125
Subscribers
No data24 hours
+67 days
No data30 days
Posts Archive
Что выведет код?
Anonymous voting

#ловушка
#ловушка

Генератор — это специальная функция, которая возвращает итератор, с помощью которого можно обойти некоторую последовательность значений. В крупных программах генераторы могут быть лучше в плане памяти и производительности. Они позволяют функциям избежать выполнения всей работы заранее, что особенно полезно, когда результирующие списки большие или получение каждого значения требует длительных вычислений. Генераторы распределяют время, необходимое для производства серии значений, по всем итерациям цикла.

def gen():
    for i in range(10):
        X = yield i
        print(X)

G = gen()
print(next(G)) # Сначала должен вызываться next(), чтобы запустить генератор
К протоколу генераторных функций добавлен метод next. Он осуществляет переход на следующий элемент в серии результатов, а также снабжает вызывающий код возможностью взаимодействия с генератором для влияния на его работу. Формально yield теперь имеет форму не оператора, а выражения, которое возвращает элемент, переданный next.

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

#размяться
#размяться

Чем отличается генераторная функция с yield от классической?
Anonymous voting

#размяться
#размяться

DataFrame.sort_values(by, *, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)
Булевый параметр ascending отвечает за тип сортировки и по умолчанию равен True, т.е. датафрейм сортируется по умолчанию от меньшего к большему.

Как по умолчанию сортирует pandas.sort_values()?
Anonymous voting

Списковое включение может применяться также как разновидность операции проецирования столбцов. Стандартный API-интерфейс для работы с базами данных SQL в Python возвращает результаты запросов в форме последовательности последовательностей вроде следующей ниже; список представляет таблицу, кортежи — строки, а элементы в кортежах — значения столбцов:
listoftuples = [('bob', 35, 'mgr'), ('sue', 40, 'dev'), ('jack', 51, 'cio')]
С использованием цикла for можно было бы извлечь все значения из выбранного «столбца» вручную, но списковые включения способны выполнить такую работу за один шаг, к тому же быстрее:
[age for (name, age, job) in listoftuples] # 35, 40, 52

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

#размяться
#размяться

Мы можем использовать списковые включения для комбинирования значений множества матриц. В задаче выше строится плоский список, который содержит результат попарного перемножения матриц.

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

#размяться
#размяться

В данном случае однократное списковое включение «сплющивает» матрицу до вектора, т.е. списка чисел. Чтобы понять такой код, его можно преобразовать к виду простых операторов:
res = []
for row in М: # Эквиваленты в виде операторов
    for col in row: # Отступ для частей, находящихся дальше справа
        res.append(col + 10)
Чтобы сохранить матрицу, достаточно использовать двойное списковое включение:
[[col + 10 for col in row] for row in M]

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

#ловушка
#ловушка

С применением функции range() генерируется список смещений и производится индексация с одинаковыми номерами строк и столбцов, выбирающая М[0][0], затем М[1][1] и т.д. Во второй строке индекс столбца уравновешивается для извлечения М[0][2], М[1][1] и т.д. (мы предполагаем, что матрица имеет равное количество строк и столбцов):
M = [[1, 2, 3], 
     [4, 5, 6], 
     [7, 8, 9]]

# Диагональ
[M[i][i] for i in range(len(M))] # [1, 5, 9]

# Обратная диагональ
[M[i][len(M)-1-i] for i in range(len(M))] # [3, 5, 7]

Узнай грейд и рыночную зарплату + получи план развития бесплатно На связи ШОРТКАТ. Мы провели 300+ собеседований с менторами
Узнай грейд и рыночную зарплату + получи план развития бесплатно На связи ШОРТКАТ. Мы провели 300+ собеседований с менторами из бигтеха, собрали ключевые вопросы с собесов и сделали тест, который поможет оценить навыки. Вот как это работает: 1. Ты проходишь экспресс-тест за 20 минут или его расширенную версию 2. Бронируешь звонок для презентации обратной связи по ответам — можем встретиться уже на следующий день! 3. К созвону проверим ответы, чекнем СV и на основе этого оценим твой грейд.  Ещё подскажем зарплату в рынке, построим план развития до следующего уровня и расскажем про наш новый продукт, который поможет получить выгодный оффер в 2025 году.  Переходи в бота и проходи тест бесплатно, а дальше расскажем, что и как: @shortcut_python_bot Реклама. ООО «Шорткат» ИНН 9731139396, erid: 2W5zFHw2ti4