🐍 Как Π΄ΠΎΠ»Π³ΠΎ ΠΏΠΈΡ‚ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΠ²Π°Π΅Ρ‚ ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°? Π£Π·Π½Π°ΠΉ сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ этот процСсс!

ΠŸΠΈΡ‚ΠΎΠ½ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΠ²Π°Π΅Ρ‚ ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΈΡ‚ΠΎΠ½ - это Π½Π°Π·Π²Π°Π½ΠΈΠ΅ языка программирования, Π° Π½Π΅ ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΎΠ³ΠΎ. Однако, я ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСмонстрируСт, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, связанных с ΠΊΡ€ΠΎΠ»ΠΈΠΊΠΎΠΌ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:
    
    rabbit_weight = 1.5  # ВСс ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ° Π² ΠΊΠΈΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…
    digestion_time = rabbit_weight * 2  # ВрСмя пСрСваривания (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ) Π² часах

    print(f"ΠŸΠΈΡ‚ΠΎΠ½Ρƒ понадобится ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ {digestion_time} часов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΡ‚ΡŒ ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ° вСсом {rabbit_weight} ΠΊΠ³.")
    
    
Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΈΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 2 часа для пСрСваривания. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это всСго лишь ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ фактичСскоС врСмя ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ².

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Бколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Python ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΠ²Π°Π΅Ρ‚ ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°?

Π­Ρ‚ΠΎ интСрСсный вопрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²ΠΎΠ»Π½ΡƒΡŽΡ‰ΠΈΠ΅ нас вопросы ΠΎ скорости выполнСния ΠΊΠΎΠ΄Π° Π½Π° Python. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся!

Π’Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ эффСктивности выполнСния ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π²Π°ΠΆΠ½ΠΎ часто ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ выполнСния ΠΊΠΎΠ΄Π°. ВрСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² случаях, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… вычислСниях. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°ΠΉΠΌΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Π² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°.

Π—Π°ΠΌΠ΅Ρ€ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния Π² Python

Python прСдоставляСт Π½Π°ΠΌ нСсколько способов для измСрСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Один ΠΈΠ· самых распространСнных способов - использованиС модуля timeit.

import timeit

def ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°():
    # Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ

врСмя_выполнСния = timeit.timeit(ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, number=1)
print(f"ВрСмя выполнСния: {врСмя_выполнСния} сСкунд")

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°(), Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТится ΠΊΠΎΠ΄, врСмя выполнСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ использовали Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ timeit.timeit(), которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, количСство запусков (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Ρ€Π°Π²Π½ΠΎ 1) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ врСмя выполнСния Π² сСкундах.

ΠŸΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ° с использованиСм рСкурсии

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния для опрСдСлСния, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°ΠΉΠΌΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΠ²Π°Π½ΠΈΡŽ ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ° Π½Π° Python. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, рассмотрим Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΠ²Π°Π΅Ρ‚ ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°.

def ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΡ‚ΡŒ_ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°(количСство_кусков):
    if количСство_кусков <= 0:
        return

    ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΡ‚ΡŒ_ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°(количСство_кусков - 1)

Π’ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΡ‹ провСряСм, Ссли количСство кусков ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ° мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ 0, Ρ‚ΠΎ просто возвращаСмся ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚Ρƒ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΡ‚ΡŒ_ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°() с ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½Π½Ρ‹ΠΌ Π½Π° 1 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ количСство_кусков. Π­Ρ‚ΠΎ создаСт Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ, которая ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΠ²Π°Π΅Ρ‚ ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ° ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ куску Π΄ΠΎ достиТСния Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ случая.

Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΊΠΎΠ΄Π° пСрСваривания ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ timeit для измСрСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния нашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΡ‚ΡŒ_ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°().

import timeit

def ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΡ‚ΡŒ_ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°(количСство_кусков):
    if количСство_кусков <= 0:
        return

    ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΡ‚ΡŒ_ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°(количСство_кусков - 1)

врСмя_выполнСния = timeit.timeit(lambda: ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΡ‚ΡŒ_ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°(10), number=1)
print(f"ВрСмя выполнСния: {врСмя_выполнСния} сСкунд")

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΡ‚ΡŒ_ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°() с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ количСством кусков ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ° (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС 10). Ѐункция timeit.timeit() измСряСт врСмя выполнСния этой лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² сСкундах.

Π’Ρ‹Π²ΠΎΠ΄

НаписаниС эффСктивного ΠΊΠΎΠ΄Π° - это Π²Π°ΠΆΠ½Ρ‹ΠΉ Π½Π°Π²Ρ‹ΠΊ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ программиста. Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΊΠΎΠ΄Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, насколько эффСктивным являСтся наш ΠΊΠΎΠ΄. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ timeit для измСрСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния Π² Python ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° для опрСдСлСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°. НадСюсь, эта информация Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ для вас!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠΊΡ€ΠΎΠ»ΠΈΠΊ змСя ΠΏΠΈΡ‚ΠΎΠ½ ΠΎΠ±Π΅Π΄ Π·ΠΌΠ΅ΠΈΠΈ

ПИВОН Π‘ΠͺΠ•Π› ΠšΠ ΠžΠ›Π˜ΠšΠ

ΠŸΠΈΡ‚ΠΎΠ½ ΠΊΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅. Dr. Tim ΠΊΠΎΡ€ΠΌΠΈΡ‚ ΠΏΠΈΡ‚ΠΎΠ½ΠΎΠ² ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°ΠΌΠΈ.

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ” Как ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ тСкста python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³ΠΈΠ΄

⚑️Как пСрСвСсти Pascal Π² Python: Π»Π΅Π³ΠΊΠΎΠ΅ руководство с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ кода⚑️

πŸ’» Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ сСп Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅? Руководство ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

🐍 Как Π΄ΠΎΠ»Π³ΠΎ ΠΏΠΈΡ‚ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Π²Π°Ρ€ΠΈΠ²Π°Π΅Ρ‚ ΠΊΡ€ΠΎΠ»ΠΈΠΊΠ°? Π£Π·Π½Π°ΠΉ сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ этот процСсс!

πŸš€ Как ΡΡ‚Π°Ρ‚ΡŒ программистом 🐍 ΠΏΠΈΡ‚ΠΎΠ½: самоС ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Как Π΄ΠΎΡΡ‚Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· словаря Π² Python ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ?

Когда Python стал нСсовмСстим с Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠΌΠΈ вСрсиями: ΠΎΠ±Π·ΠΎΡ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹