πŸ”§ Как ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python: ΠΈΠ΄Π΅ΠΈ ΠΈ инструкции

Как ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ с использованиСм Python?

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ с использованиСм Python ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° ΠΈ символов. Π’ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


# ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ высоту ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹
высота = int(input("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ высоту ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹: "))

# Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ
for i in range(высота):
    print(" " * (высота - i - 1) + "*" * (2 * i + 1))

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ сначала Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ высоту ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ» для Π²Ρ‹Π²ΠΎΠ΄Π° строк ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС ΠΌΡ‹ сначала Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ количСство ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΈ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½ΡƒΠΆΠ½ΠΎΠ΅ количСство Π·Π²Π΅Π·Π΄ΠΎΡ‡Π΅ΠΊ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ.

НапримСр, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ высоту ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ Ρ€Π°Π²Π½ΠΎΠΉ 5, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

    *
   ***
  *****
 *******
*********

НадСюсь, этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΌΠΎΠ³ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python. Π£Π΄Π°Ρ‡ΠΈ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ программирования!

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

Как ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ Π² Python?

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Π° являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· популярных структур Π΄Π°Π½Π½Ρ‹Ρ…. Она прСдставляСт собой ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ элСмСнтов, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°, ΠΊΡ€ΠΎΠΌΠ΅ послСднСго уровня, Π³Π΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ ячСйки.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹:

Для создания ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ Π² Python ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ списки ΠΈΠ»ΠΈ массивы. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ списком ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π³ΠΎ элСмСнтами. НапримСр:

pyramid = [1, 2, 3, 4, 5, 6]

Π­Ρ‚ΠΎΡ‚ список прСдставляСт собой ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ с 6 элСмСнтами. Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ элСмСнтов Π² спискС начинаСтся с 0.

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ ΠΈΠ· нашСго списка, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСкурсивный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ ΠΊ Π΅Π΅ основанию ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ элСмСнтами ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹.

def build_pyramid(pyramid):
    n = len(pyramid)
    for i in range(n // 2, -1, -1):
        heapify(pyramid, n, i)
        
def heapify(pyramid, n, i):
    largest = i
    left = 2 * i + 1
    right = 2 * i + 2
    
    if left < n and pyramid[i] < pyramid[left]:
        largest = left
        
    if right < n and pyramid[largest] < pyramid[right]:
        largest = right
        
    if largest != i:
        pyramid[i], pyramid[largest] = pyramid[largest], pyramid[i]
        heapify(pyramid, n, largest)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ build_pyramid функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ список ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ heapify Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта, начиная с сСрСдины списка.

Ѐункция heapify выполняСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ элСмСнтами ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹, ΠΈ Ссли это Π½Π΅ Ρ‚Π°ΠΊ, Ρ‚ΠΎ мСняСт ΠΈΡ… мСстами Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ достигнуто ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ условиС ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ build_pyramid ΠΈ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ Π½Π° экран:

pyramid = [1, 5, 3, 2, 4, 6]
build_pyramid(pyramid)
print(pyramid)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

[6, 5, 3, 2, 4, 1]

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ построСна ΠΈ выводится отсортированная вСрсия списка.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅:

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ Π² Python являСтся Π²Π°ΠΆΠ½Ρ‹ΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. РСкурсивный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ элСмСнты ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²ΡƒΡ… ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ², ΠΊΡ€ΠΎΠΌΠ΅ послСднСго уровня. ИспользованиС списка ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ build_pyramid ΠΈ heapify позволяСт Π½Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ ΠΈΠ· любого Π½Π°Π±ΠΎΡ€Π° элСмСнтов.

НадСюсь, этот Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ понятный ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎΠΌΠΎΠ³ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ Π² Python. Π£Π΄Π°Ρ‡ΠΈ Π² вашСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ!

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

Python для котят. ПишСм ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄ΠΊΡƒ ΠΈΠ· символов!

14.1 Π—Π²Π΅Π·Π΄Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ. "ПоколСниС Python": курс для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. ΠšΡƒΡ€Ρ Stepik

#26. Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Паскаля ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² | Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

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

πŸ”ͺ Как ΠΎΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒ слово Π² Python: практичСскоС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ” Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ selenium python? ΠžΡ‚Π²Π΅Ρ‚Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования!

πŸ€– Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ своСго Π±ΠΎΡ‚Π° Π² ДискордС Π½Π° Python

πŸ”§ Как ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python: ΠΈΠ΄Π΅ΠΈ ΠΈ инструкции

Как ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ python

πŸΠ§Ρ‚ΠΎ программируСтся Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅: популярныС языки, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈπŸ–₯️

Как Π½Π°ΠΉΡ‚ΠΈ максимум Π² Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠΌ массивС ΠΏΠΈΡ‚ΠΎΠ½? πŸ“Š