Python: задачки и вопросы Telegram-Beiträge

Вопросы и задачки для подготовки к собеседованиям и прокачки навыков
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Другие наши проекты: https://tprg.ru/media
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Другие наши проекты: https://tprg.ru/media
8,184 Abonnenten
1,182 Fotos
1 Videos
Zuletzt aktualisiert 11.03.2025 07:47
Ähnliche Kanäle

41,095 Abonnenten

24,574 Abonnenten

16,192 Abonnenten
Der neueste Inhalt, der von Python: задачки и вопросы auf Telegram geteilt wurde.
X = 99
def selector(): # Имя X используется, но не присваивается
print(X) # Имя X найдено в глобальной области видимости
selector()
—
— используется генератор списка
— Функция
'spam' * 3
генерирует строку 'spamspamspam'
, которая состоит из трех повторений строки 'spam'
;— используется генератор списка
[]
, который обходит каждый символ строки 'spamspamspam'
;— Функция
f(x)
просто возвращает переданное ей значение x без изменений.
Модуль timeit позволяет измерить время исполнения кода.
В команде
Вывод у команды будет такой (проверено на Python 3.13.1):
В команде
python3 -m timeit -n 1000 -r 3 "L = [1,2,3,4,5]" "M = [x + 1 for x in L]"
используются несколько флагов, которые управляют поведением модуля:-n 1000
: флаг указывает количество повторений. Тестируемый код будет выполняться 1000 раз за каждую итерацию.-r 3
: флаг задает количество повторных запусков всего тестаВывод у команды будет такой (проверено на Python 3.13.1):
1000 loops, best of 3: 111 nsec per loop
map() — самый быстрый вариант, поскольку функция фактически работает на C. И это превышает скорости конкурентов. А кто в рейтинге взял серебро и бронзу?
Как видно, в каждой функции по 10 миллионов шагов функций — каждая строит список из 10 000 элементов 1000 раз.
Запустив сценарий в Python 3.7, мы получаем следующие результаты — map() быстрее списковых включений, они оба быстрее циклов for, а генераторные выражения и функции находятся посередине (время в секундах):
Генераторное выражение должно делать дополнительную работу по сохранению и
восстановлению своего состояния во время выпуска значений.
Как видно, в каждой функции по 10 миллионов шагов функций — каждая строит список из 10 000 элементов 1000 раз.
Запустив сценарий в Python 3.7, мы получаем следующие результаты — map() быстрее списковых включений, они оба быстрее циклов for, а генераторные выражения и функции находятся посередине (время в секундах):
forLoop :: 2.34160
listComp : 1.31783
mapCall :: 0.41968
genExpr :: 1.92063
genFunc :: 1.93672
Генераторное выражение должно делать дополнительную работу по сохранению и
восстановлению своего состояния во время выпуска значений.
Модуль time позволяет замерить время исполнения кода. Вот пример функции с ее использованием:
Что делают остальные модули, можно посмотреть в полном списке в документации Python.
import time
def timer(func, *args): # Упрощенная функция измерения времени
start = time.clock()
for i in range(1000):
func(*args)
return time.clock() - start # Суммарное истекшее время в секундах
Что делают остальные модули, можно посмотреть в полном списке в документации Python.