π Π‘Π°ΠΌΠΎΡΡΠΈΡΠ΅Π»Ρ ΠΏΠΎ Python Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . Π§Π°ΡΡΡ 13: Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Π Π°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ, Π² ΠΊΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ, ΡΠ΅ΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π»ΡΡΡΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠΎΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Python. Π ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ ΡΠ΅ΡΠΈΠΌ 10 ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π΄Π°Ρ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ β ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌ.
Π Π΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ°ΠΌΠ° ΡΠ΅Π±Ρ, ΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π΅ΡΡΡ ΡΡΠ΄ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΠ΅ (Π½ΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅) ΡΠ΅ΡΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠΈ. ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°ΡΡΠΎ ΡΡΠ°Π²ΠΈΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π² ΡΡΠΏΠΈΠΊ. Π§ΡΠΎΠ±Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ (Π² ΡΠ°ΠΌΡΡ ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ ) ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ².
Π‘ΡΠ΅ΠΊ β ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ°
Π΄Π°Π½Π½ΡΡ
LIFO (last in, first out): ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² Β«ΡΡΠΎΠΏΠΊΡΒ» , ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ²Π΅ΡΡ
ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ, Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, β Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ.
Π Π°Π±ΠΎΡΡ ΡΡΠ΅ΠΊΠ° ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
Π² ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ append ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ pop:
stack = []
for i in range(1, 11):
stack.append(f'{i}-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ')
print(f'+ {i}-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½')
for i in stack:
print(i, end=" ")
print('\n')
for i in range(len(stack)):
print('Π ΡΡΠ΅ΠΊΠ΅: ', end=" ")
for i in stack:
print(i, end=" ")
print(f'\n{stack.pop()} ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ°')
ΠΡΠ²ΠΎΠ΄:
+ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 9-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 9-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ + 10-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 9-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 10-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 9-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 10-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 10-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 9-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 9-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 8-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 7-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 6-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 5-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 4-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 2-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ° Π ΡΡΠ΅ΠΊΠ΅: 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ 1-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΡΠ΅ΠΊΠ°
Π‘ΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ², Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, β ΡΡΠΎ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΡΠ΅ΠΉΠΌ β ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΏΠ°ΠΌΡΡΠΈ, β Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ:
- ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ;
- Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΠ»Π° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ;
- Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°;
- ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΡΡΠΎΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π€ΡΠ΅ΠΉΠΌΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅, ΠΈ ΡΠ΄Π°Π»ΡΡΡΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·. Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΉΠΌΠΎΠ² ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΊΠΎΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ΅Π²Π΅ΡΠ½ΠΎΠ΅ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠ° (stack overflow). ΠΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠ°ΠΉΡ StackOverflow Π½Π°Π·Π²Π°Π½ ΠΊΠ°ΠΊ ΡΠ°Π· Π² ΡΠ΅ΡΡΡ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠ΅ΠΊ Π² ΠΎΠΏΡΡΠ½ΡΡ ΡΠ΅Π»ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ°ΠΌΠ° ΡΠ΅Π±Ρ, Π½ΠΎ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ:
def recursive():
recursive()
recursive()
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° ΠΈ ΠΏΠΎΡΠ»Π΅ 1000 Π±Π΅ΡΠΏΠ»ΠΎΠ΄Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ:
shortest() RecursionError: maximum recursion depth exceeded
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π»ΠΈΠΌΠΈΡ Π½Π° Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ, Π½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π½Π΅Π»ΡΠ·Ρ β Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ Π²Π½ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΈΡΠΎΠ³Π΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΌ:
from sys import getrecursionlimit from sys import setrecursionlimit print(getrecursionlimit()) # Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π»ΠΈΠΌΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ setrecursionlimit(2000) # ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π»ΠΈΠΌΠΈΡ Π΄ΠΎ 2000 Π²ΡΠ·ΠΎΠ²ΠΎΠ² print(getrecursionlimit())# Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½ΠΎΠ²ΡΠΉ Π»ΠΈΠΌΠΈΡ #ΠΡΠ²ΠΎΠ΄: 1000 2000
Π§ΡΠΎΠ±Ρ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½ΡΠ»ΡΡ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π΄Π²Π° ΡΠ»ΡΡΠ°Ρ:
- ΠΡΠ°Π½ΠΈΡΠ½ΡΠΉ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
- Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ΅Π±Ρ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΡΠ΅Π½Ρ ΠΎΠ±Π° ΡΠ»ΡΡΠ°Ρ:
def greetings(st):
print(st)
if len(st) == 0: # ΠΡΠ°Π½ΠΈΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ
return
else: # Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ
greetings(st[:-1])
greetings('Hello, world!')
ΠΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π»ΠΈΠ½Π° Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ 0:
Hello, world! Hello, world Hello, worl Hello, wor Hello, wo Hello, w Hello, Hello, Hello Hell Hel He H
ΠΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ»ΠΎ ΠΈ Π³ΡΠ°Π½ΠΈΡΠ½ΡΠΉ, ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΈ ΡΡΠ°Π·Ρ:
def greetings(st):
print(st)
if len(st) > 0:
greetings(st[:-1])
greetings('Hello world!')
Π Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ, ΠΈ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π² ΡΡΠ½ΠΊΡΠΈΡ greetings() ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΡ, Π΄Π»ΠΈΠ½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ, ΠΏΠΎΠΊΠ° Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΡΠ°Π²Π½ΠΎΠΉ 0.
ΠΡΠ»ΠΈΡΠ½ΠΎ! ΠΡ ΠΏΠΎΠ½ΡΠ»ΠΈ ΡΠ°ΠΌΡΡ ΡΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ΅ΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΈ ΡΠΌΠ΅Π΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π±Π°Π·ΠΎΠ²ΡΠΌ ΡΠ»ΡΡΠ°Π΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ RecursionError. Π£ Π²Π°Ρ Π΅ΡΡΡ Π²ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ°Ρ ΡΠ΅ΠΎΡΠΈΡ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ.
ΠΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ, β ΡΡΠΎ Π»ΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³. ΠΠΎΡΠ°Π·Π΄ΠΎ Π²Π°ΠΆΠ½Π΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π΅Ρ ΡΡΠΎΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈ ΠΊΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. Π ΠΏΠΎΠ»Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΡΠΎΠΊΠ° Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅:
- ΠΠΎΡΠ΅ΠΌΡ ΡΠ΅ΠΊΡΡΡΠΈΡ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΎΠ±ΡΡΠ½ΡΡ ΡΠΈΠΊΠ»ΠΎΠ² (Ρ Π½Π°Π³Π»ΡΠ΄Π½ΡΠΌ ΡΠ΅ΡΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ).
- ΠΠ°ΠΊ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠΎΡΠ½ΠΈ ΡΠ°Π· Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Ρ
Π½ΠΈΠΊΠΈ ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°
@lru_cache. - ΠΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ 10 ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π΄Π°Ρ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ β ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌ, ΡΡΠΎΠ±Ρ Π½Π° Π΄Π΅Π»Π΅ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΈΡ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ.