Замыкание в Python — это функция, которая «запоминает» переменные из своей области видимости даже после того, как эта область завершила своё выполнение. Это происходит, если функция вложена в другую функцию и использует переменные внешней функции. Замыкания позволяют создать приватные данные и расширить поведение функций. Здесь innerfunction «запомнила» значение переменной text, хотя внешняя функция outerfunction уже завершила своё выполнение.
  Что происходит в подкаталоге __pycache__? #джуну
  Anonymous Quiz
    3%
    Хранятся необработанные файлы кода
      
    53%
    Хранятся скомпилированные байт-коды файлов
      
    17%
    Хранятся лог-файлы работы интерпретатора Python
      
    27%
    Хранятся временные файлы для отладки
      
    Реализации для интеграции с ЯП:
- Jython (Java)
- IronPython (.NET)
- CPython (C)
Реализация для повышенной производительности (JIT-компилятор):
- PyPy.
  - Jython (Java)
- IronPython (.NET)
- CPython (C)
Реализация для повышенной производительности (JIT-компилятор):
- PyPy.
Почему этот код не заменит "ананас" на "киви"?
  Anonymous Quiz
    22%
    Датафрейм — неизменяемый тип данных
      
    25%
    replace() работает только со строками
      
    10%
    У replace() аргументы "что заменить" и "на что заменить" расположены в другом порядке
      
    43%
    Нет присвоения результата replace() обратно в переменную
      
    Какие операции над списком удалят элемент?
  Anonymous Quiz
    24%
    L.pop(2)
      
    13%
    del L[2]
      
    9%
    L.remove(3)
      
    54%
    Все вышеперечисленные
      
    В данном коде создается список квадратов (x2) только для четных чисел из диапазона от 0 до 4 включительно, то есть 0, 2 и 4. Квадраты этих чисел составят: 0, 4 и  16 соответственно, что в итоге даст 0, 4, 16.
  Как вывести диагональ матрицы [1, 5, 9]?
  Anonymous Quiz
    68%
    A. [M[i][i] for i in range(3)]
      
    16%
    B. [M[i][len(M) - 1 - i] for i in range(len(M))]
      
    6%
    C. [M[0][i] for i in range(3)]
      
    10%
    Никто из перечисленных
      
    Что выведет этот код?
  Anonymous Quiz
    9%
    A) []
      
    71%
    B) [[2, 1.0, 4], [4, 2.0, 8], [6, 3.0, 12]]
      
    6%
    C) [[6, 3.0, 12]]
      
    15%
    D) [[0, 0.0, 0], [2, 1.0, 4], [4, 2.0, 8], [6, 3.0, 12]]
      
    Здесь мы создаем список, который включает подсписки x, x / 2, x * 2 только для тех значений x из диапазона от -6 до 6 с шагом 2, которые больше 0. Значения, которые удовлетворяют условию x > 0, это 2, 4 и 6, следовательно, результат будет [2, 1.0, 4, 4, 2.0, 8, 6, 3.0, 12].
  Какой способ суммировать элементы матрицы M самый быстрый? #джуну
  Anonymous Quiz
    36%
    A. sum(sum(row) for row in M)
      
    9%
    B. for row in M:     for elem in row:         total += elem
      
    31%
    C. sum(x for row in M for x in row)
      
    24%
    Скорость одинаковая, даже на крупных матрицах
      
    Вариант C использует генераторное выражение, которое является наиболее эффективным способом суммирования элементов матрицы, так как не требует создания промежуточного списка. Цикл for в варианте B включает двухуровневый цикл, то есть является самым медленным вариантом. Вариант A менее эффективен, чем C, так как включает дополнительный вызов sum().