2.15.Π€ΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ. ΠΠΎΠ½ΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Π€ΡΠ½ΠΊΡΠΈΡ
— Π‘ΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²,
ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ
Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
Π·Π°Π΄Π°Ρ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ Π²
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ. ΠΡΠ±Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
Π½Π° Π‘ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ
Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ main. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π°ΡΡΠΈΠ±ΡΡΡ Π΅Π΅
ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ ΡΠ΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ,
ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². Π
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ
Π·Π°Π΄Π°Π²Π°ΡΡΡΡ ΠΊΠ»Π°ΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠΈΠΏ
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅
ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°Π΄Π°Π΅Ρ ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠΈΠΏ
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡΡΡ ΠΊΠ»Π°ΡΡ
ΠΏΠ°ΠΌΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊ ΠΆΠ΅
ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΊΠ»Π°ΡΡ ΠΏΠ°ΠΌΡΡΠΈ,
ΡΠΈΡΠ»ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΈΡ
ΡΠΈΠΏ. Π ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ
ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ
ΠΈ ΠΊΠ»Π°ΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠ»ΠΈ ΡΠΈΠΏ
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ,
ΡΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠΏ Β«ΡΠ΅Π»ΡΠΉΒ».
Π ΠΌΠΎΠΌΠ΅Π½ΡΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ
ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π§ΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ,
Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ. Π€ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
ΠΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈ
Π²ΡΠ·ΠΎΠ²Π΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ
ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡ
ΠΈΠΌΠ΅Π½ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΠΊΡΡΠ³Π»ΡΡ
ΡΠΊΠΎΠ±ΠΊΠ°Ρ
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠ΅
Π·Π°ΠΏΡΡΡΠΌΠΈ, ΠΏΡΠΈ ΡΡΠΎΠΌ, Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΏ.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ. ΠΠΎΡΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΎΠ΅ΡΠΎΡΠΈΠ΅. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ
ΡΠΈΡΠ»ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Π½ΠΎ
Π½Π΅ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²
Π΄ΠΎ ΡΡΠΎΠ΅ΡΠΎΡΠΈΡ. ΠΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅ Π·Π°Π΄Π°Π½Ρ Π²
ΡΠΏΠΈΡΠΊΠ΅ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ
ΠΌΠ°ΠΊΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. ΠΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΡΡΠΎΠ΅ΡΠΎΡΠΈΡ.
ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΠΈΡΠ»ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ
Π±ΡΡΡ ΡΠ°Π²Π½ΡΠΌ Π½ΡΠ»Ρ.
Π€ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠΈΠΏ, ΡΠΈΠΏ
Β«ΡΡΡΡΠΊΡΡΡΠ°Β», Β«ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅Β», Π»ΠΈΠ±ΠΎ Π±ΡΡΡ
ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ. ΠΠ°ΡΡΠΈΠ²
Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΈΠΏ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ. ΠΠΎΡΠ»Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΏ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π½Π΅ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ int.
ΠΡΠΈ
Π½Π°Π»ΠΈΡΠΈΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠΈΠΏΠ° Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ΡΠ²Π½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ
ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ
ΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅
ΡΠΈΠΏΠΎΠ² ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ
ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΡΡ
ΠΈΠ· ΡΡΠ΅ΠΊΠ°
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Π’Π΅Π»ΠΎ
ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅
Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²,
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
Π² ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ,
ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΠΌΠ΅ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΊΠ»Π°ΡΡ auto, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ.
ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ
Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, ΠΈ, Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ,
ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΈΡ
ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΠΎΡΡΠ°Π²Π½ΠΎΠ³ΠΎ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ
Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΡΡΡΠ΅ΡΠΈΡΡΡ return, Π»ΠΈΠ±ΠΎ
Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ ΠΊΠΎΠ½Π΅Ρ ΡΠΎΡΡΠ°Π²Π½ΠΎΠ³ΠΎ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²
ΡΠΎΡΠΊΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΠΊ
Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΈ ΠΈΡ
Π½Π°Π»ΠΈΡΠΈΠΈ
ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠ΅
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ
ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅. ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ
Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ, Π½Π°Π΄ Π½ΠΈΠΌΠΈ
Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ,
Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΡΠ΅ΠΊ, ΠΎΡΠΊΡΠ΄Π° ΡΡΠΈ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ
ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ.
Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅
ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠ±Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² Π‘ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Π° ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ. Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΡΠ·ΠΎΠ², ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ·ΠΎΠ² ΡΠ°ΠΌΠΎΠΉ ΡΠ΅Π±Ρ, Π»ΠΈΠ±ΠΎ Π²ΡΠ·ΠΎΠ² Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠΈΡΠ»ΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² Π‘ΠΈ. ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΡΠ΄Π΅Π»ΡΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π΅ΡΠ»ΠΈ ΠΈΡ ΠΊΠ»Π°ΡΡ Π½Π΅ stack ΠΈ Π½Π΅ extern. Π§ΠΈΡΠ»ΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ auto.
ΠΡΠ°Π²ΠΈΠ»Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΡΠΈΠΈ:
Β· ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ
Β· ΠΠ»Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠ½ΠΊΡΠ΅
Β· ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π€ΡΠ½ΠΊΡΠΈΠΈ Π² Python
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠ·ΠΎΠ² ΠΏΡΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ def ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² Python.
def function_name(parameters):
statement(s)function_name ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° , ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°Π·Π²Π°Π½ ΠΏΠΎΠ·ΠΆΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°.
parameters Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π·Π°ΠΏΡΡΡΠΌΠΈ.
statement(s) — ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ ΡΠ΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ — ΡΡΠΎ Π½Π΅ΠΏΡΡΡΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² , Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ
ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ , ΡΡΠΎ ΡΠ΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ, ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ ΠΎΡΡΡΡΠΏΠΎΠΌ Π±Π»ΠΎΠΊ .
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ΅Π»ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ°ΡΠΈ Hello ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· , ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ:
def greet():
print("Hello")Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ greet() ΡΡΠ½ΠΊΡΠΈΠΈ:
greet() # Hello
ΠΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
def greet_two(greeting):
print(greeting)
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ greet_two() ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Π° Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ:
greet_two("Howdy")
# HowdyΠ’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ:
def greet_two(greeting="Howdy"): print(greeting)
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
greet_two() # Howdy
ΠΡ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΈΡ
Π΄ΡΡΠ³ΠΈΡ
ΡΠ·ΡΠΊΠΎΠ², Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ²Π½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
return ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°. ΠΠ΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π½ΡΡ
ΡΠΈΠΏΠΎΠ²!def many_types(x):
if x < 0:
return "Hello!"
else:
return 0
print(many_types(1))
print(many_types(-1))
# 0
# Hello!ΠΠΎΠΊΠ° ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ, ΡΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Python.
Π€ΡΠ½ΠΊΡΠΈΡ , ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Π΅Π· ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ None :
def do_nothing(): pass print(do_nothing()) # None
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠ΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π΅ΠΏΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΠΎΡΡΠΎΠΌΡ pass ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π² ΡΠ΅Π»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ — ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ. ΠΠ½ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΠΎΠ½ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ. ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, Π½ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄.
ΠΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ return Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ , ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ:
def give_me_five(): return 5 print(give_me_five()) # Π Π°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ # 5
ΠΈΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
num = give_me_five() print(num) # Π Π°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΠΎΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ # 5
ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π»ΡΠ±ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ:
print(give_me_five() + 10) # 15
ΠΡΠ»ΠΈ return Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΡΠ»Π° ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ:
def give_me_another_five():
return 5
print('ΠΡΠΎ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ.
ΠΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ.')
print(give_me_another_five())
# 5ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ return Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ (Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΡΡΠ΅ΠΆΠ°):
def give_me_two_fives():
return 5, 5 # Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π²Π΅ 5
first, second = give_me_two_fives()
print(first)
# 5
print(second)
# 5
Π€ΡΠ½ΠΊΡΠΈΡ, Π±Π΅Π· return Π·Π°ΡΠ²Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠ²Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ None.Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Ρ return ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ, Π½ΠΎ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ None .
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ:
def divide(dividend, divisor): #ΠΠΌΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π΅Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ # ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π² ΡΠ΅Π»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ print(dividend / divisor)
ΠΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π΅Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠΈΠ³Π½Π°ΡΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠ² ΠΈΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅
divide(10, 2) # 5
ΠΈΠ»ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΈΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠΌΠ΅Π½Π° ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
divide(divisor=2, dividend=10) # 5
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΏΡΡΠ΅ΠΌ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ( Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ = ) Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠΌΡ-Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°:
def make(action='nothing'): return action
ΠΡΠ·ΠΎΠ² ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΡΡΠ΅ΠΌΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
make("fun")
# fun
make(action="sleep")
# sleep
# ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ½ΠΊΡΠΈΡ
# Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ,
# Π΅ΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½.
make()
# Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΡΠΈΠΏΡ ( list , dict , set ΠΈ Ρ.Π΄.) , ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ , ΠΊΠΎΠ³Π΄Π° Π΄Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π°ΡΡΠΈΠ±ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ±Π°Ρ ΠΌΡΡΠ°ΡΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ Π΅Π³ΠΎ Π½Π°Π²ΡΠ΅Π³Π΄Π°. Π‘ΠΌ ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ .
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
ΠΠΎΠΆΠ½ΠΎ Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΎΠ»ΡΠΊΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΠΎ, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° — ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΈ ΡΡΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π½Π΅ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ :
def func(value1, value2, optionalvalue=10):
return '{0} {1} {2}'.format(value1, value2, optionalvalue)ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ, Π½ΠΎ ΡΠΎΠ³Π΄Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
print(func(1, 'a', 100))
# 1 a 100
print(func('abc', 14))
# abc 14 10
ΠΠ»ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΠ°ΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Π±Π΅Π·.
Π’ΠΎΠ³Π΄Π° ΡΠ΅, Ρ ΠΊΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΈΠΌΡ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π·Π° ΡΠ΅ΠΌΠΈ, Ρ ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ, Π½ΠΎ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ΅Ρ
, Ρ ΠΊΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΈΠΌΡ, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
print(func('This', optionalvalue='StackOverflow Documentation', value2='is'))
# This is StackOverflow Documentation ΠΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²:
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ , ΡΠΏΠΎΡΠΎΠ±Π½ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΄Π΅Π»Π°Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠ² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Ρ *
def func(*args):
# args Π±ΡΠ΄Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΌ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
for i in args:
print(i)
# ΠΡΠ·ΠΎΠ² Ρ 3 Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
func(1, 2, 3)
# 1
# 2
# 3
list_of_arg_values = [1, 2, 3]
# ΠΡΠ·ΠΎΠ² ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, * ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ
func(*list_of_arg_values)
# 1
# 2
# 3
# ΠΡΠ·ΠΎΠ² Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²
func()
# ΠΠ΅Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ args , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ func(*args=[1, 2, 3]) ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ (Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ).
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΈΡ
ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ func(*args=[1, 2, 3]) ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅Ρ TypeError .
ΠΠΎ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ (ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Iterable ), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: func(*my_stuff) .
ΠΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ( *args ) ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ , args[0] Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ
ΠΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ Π΄Π²ΡΠΌΡ * ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌ:
def func(**kwargs):
# kwargs Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΌ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π°
# Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
for name, value in kwargs.items():
print(name, value)
# ΠΡΠ·ΠΎΠ² Ρ 3-ΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
func(value1=1, value2=2, value3=3)
# value1 1
# value2 2
# value3 3
# ΠΡΠ·ΠΎΠ² Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²
func()
# ΠΠ΅Ρ Π²ΡΠ²ΠΎΠ΄Π°
# ΠΡΠ·ΠΎΠ² ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ
my_dict = {'foo': 1, 'bar': 2}
func(**my_dict)
# foo 1
# bar 2
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΠΎ Π±Π΅Π· ΠΈΠΌΠ΅Π½, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ func(1, 2, 3) ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅Ρ TypeError .
kwargs ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΎΠ΄Π½ΠΎΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠΈΡΠΎΠ½Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, args['value1'] Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° value1.ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π·Π°ΡΠ°Π½Π΅Π΅ , ΡΡΠΎ Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ KeyError Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄Π½ΡΡ.
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, Π½ΠΎ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²Π½ΡΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
- ΠΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ / ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ. (ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ). Β
- ΠΠΎΡΠΎΠΌ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅
*argΠ°ΡΠ³ΡΠΌΠ΅Π½ΡΡ. (ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ). Β - ΠΠΎΡΠΎΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ. (ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅). Β
- ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΏΡΠΈΠ²Π΅ΡΠΈΡ
ΠΎΠ΄ΠΈΡ Β ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ
**kwargsΒ (ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ).
# |-positional-|-optional-|---keyword-only--|-optional-|
def func(arg1, arg2=10 , *args, kwarg1, kwarg2=2, **kwargs):
passarg1Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°Π΄Π°Π½, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅TypeErrorΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΡΡΡ.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π΄Π°Π½ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ ( func(10)) ΠΈΠ»ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° (func(arg1=10)).kwarg1ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½, Π½ΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°-Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°:func(kwarg1=10).arg2ΠΈkwarg2Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ. ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ , ΠΊΠ°ΠΊ ΠΈ Π΄Π»Ρarg1(Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ) ΠΈkwarg1(ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ) ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ.*argsΡΠ»ΠΎΠ²Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. ΠΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎarg1ΠΈarg2Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ*args:func(1, 1, 1, 1).**kwargsΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ². Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π»ΡΠ±ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ , ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅arg1,arg2,kwarg1ΠΈΠ»ΠΈkwarg2.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: func(kwarg3=10).- Π Python 3, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
*Π² ΠΏΠΎΠΊΠΎΠ΅ , ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ , ΡΡΠΎ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ². ΠΠ»Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°math.iscloseΡΡΠ½ΠΊΡΠΈΠΈ Π² Python 3.5 ΠΈ Π²ΡΡΠ΅ , ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌdef math.isclose (a, b, *, rel_tol=1e-09, abs_tol=0.0), ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ , ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΠΎ , Π½ΠΎ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΡΡΠ΅ΡΠΈΠΉ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΊ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ.
Python 2.x Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ»ΠΎΠ². Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Ρ kwargs :
def func(arg1, arg2=10, **kwargs):
try:
kwarg1 = kwargs.pop("kwarg1")
except KeyError:
raise TypeError("missing required keyword-only argument: 'kwarg1'")
kwarg2 = kwargs.pop("kwarg2", 2)
# function body ...ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ
Π£ΡΠ»ΠΎΠ²Π½ΠΎΡΡΡ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² args ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ»ΠΎΠ² kwargs ΠΏΡΠΎΡΡΠΎ ΡΡΠ»ΠΎΠ²Π½ΠΎΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π²Π°ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ , Π½ΠΎ ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ , ΡΡΠΎΠ±Ρ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π½Π°Π»ΠΈ , ΡΡΠΎ Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌ ΠΏΠΎΡΠΎΠΌ ΡΠ°ΠΊ ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΡ
ΠΡΠ±Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π½ΠΈ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ *args ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ **kwargs , Π½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΡΡ
. Π’Π°ΠΊΠΆΠ΅ *args Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ **kwargs Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ. ΠΠΎΠΏΡΡΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΎ ΡΡΠ½ΠΊΡΠΈΡΡ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
ΠΠΎΠΆΠ½ΠΎ Π³Π½Π΅Π·Π΄ΠΎΠ²ΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΎΠ±ΡΡΠ½Π°Ρ ΡΡΠ»ΠΎΠ²Π½ΠΎΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ , ΡΡΠΎ ΠΊΠΎΠ΄ ΡΠΆΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΠ΅ , Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ Π²Π½ΠΈΠ· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Ρ * ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ Π°ΡΠ³ Ρ ** ΠΏΡΠΈΡΡΠ°Π²ΠΊΠΎΠΉ , ΠΈΠ½Π°ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ»ΠΈ ΠΊΠΎΡΡΠ΅ΠΆ, Π° kwargs — ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΡΠ»ΠΎΠ²Π°ΡΡ. Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
def fn(**kwargs):
print(kwargs)
f1(**kwargs)
def f1(**kwargs):
print(len(kwargs))
fn(a=1, b=2)
# {'a': 1, 'b': 2}
# 2 ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ ΡΠΈΠΏΠΎΠΌ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ( ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ), ΡΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ.
ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΠ· — Π·Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ , ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, Π° Π½Π΅ (ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ) , ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ __defaults__ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅Π½Π°.
def f(a, b=42, c=[]):
pass
print(f.__defaults__)
# (42, [])ΠΠ»Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ
ΡΠΈΠΏΠΎΠ² (ΡΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½ΡΠΈΠ²ΠΎΡΡΠΈ ) ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° , ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° , ΡΡΠΎΠ±Ρ ΠΌΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅; ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ, ΠΎΡΡΠ°Π²Π»ΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΌΡΡΠΈΡΠΎΠ²Π°ΡΡ, Π΄Π΅Π»Π°Ρ Π·Π²ΠΎΠ½ΠΊΠΈ Π½Π° Π΅Π³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ — ΡΠ»Π΅Π½ΠΎΠ². Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
def append(elem, to=[]): # ΠΡΠΎΡ Π²ΡΠ·ΠΎΠ² append() ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ "to" to.append(elem) return to append(1) # [1] # ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ append(2) # [1, 2] # ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π΄Π°Π΅Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ append(3, []) # [3] # ΠΠΎΠ²ΡΠΎΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ½ΠΎΠ²Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ # ΡΠΏΠΈΡΠΎΠΊ ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌΡ ΡΠΏΠΈΡΠΊΡ append(4) # [1, 2, 4]
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ , ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ , ΡΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅Π³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΉ ΡΠΈΠΏ ΠΊΠ°ΠΊ Π²Π°Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ±ΡΠ°Ρ ΠΈΠ΄ΠΈΠΎΠΌΠ° , ΡΡΠΎΠ±Ρ Π΄ΠΎΡΡΠΈΡΡ ΡΡΠΎΠ³ΠΎ , ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΡΠΈΠΏΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ None (Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΉ) Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ , Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° , Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΡΠ°Π²Π½ΠΎ None .
def append(elem, to=None):
if to is None:
to = []
to.append(elem)
return toΠΡΠΌΠ±Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ
lambda ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ½Π»Π°ΠΉΠ½, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΎΠ΄Π½ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ — ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ:
def greeting(): return "Hello"
ΠΊΠΎΡΠΎΡΡΠΉ, ΠΊΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ:
print(greeting())
ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ:
# Hello
ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² Π²ΠΈΠ΄Π΅ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
greet_me = lambda: "Hello"
ΠΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ greet_me , ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Hello.ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ , ΡΡΠΎ Π²Ρ Π½Π΅ ΠΏΠΈΡΠ΅ΡΠ΅ return ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π»ΡΠΌΠ±Π΄Π°. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ : Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ.
ΠΠΎΡΠ»Π΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ:
print(greet_me())
ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ:
# Hello
lambda — s ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΡΠΎΠΆΠ΅:
strip_and_upper_case = lambda s: s.strip().upper()
strip_and_upper_case(" Hello ")Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ:
# HELLO
ΠΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² / ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ»ΠΎΠ², ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
greeting = lambda x, *args, **kwargs: print(x, args, kwargs)
greeting('hello', 'world', world='world')
ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ:
# hello('world',) {'world': 'world'}lambda — Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² ΡΠΎΡΠΊΠ΅ , Π³Π΄Π΅ ΠΎΠ½ΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ( ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ , Ρ sorted , filter ΠΈ map ).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ° ΡΡΡΠΎΠΊΠ° ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠΎΠΊ, ΠΈΠ³Π½ΠΎΡΠΈΡΡΡ ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡ ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΡΡ ΠΏΡΠΎΠ±Π΅Π»Ρ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅:
sorted( [" foo", " bAR", "BaZ "], key=lambda s: s.strip().upper()) # [' bAR', 'BaZ ', 'foo']
Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΡ ΠΏΡΠΎΠ±Π΅Π»Ρ:
sorted( [" foo", " bAR", "BaZ "], key=lambda s: s.strip()) # ['BaZ ', ' bAR', 'foo']
ΠΡΠΈΠΌΠ΅ΡΡ Ρ map :
ΠΡΠΈΠΌΠ΅ΡΡ Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ:
my_list = [3, -4, -2, 5, 1, 7] sorted( my_list, key=lambda x: abs(x)) # [1, -2, 3, -4, 5, 7] list( filter( lambda x: x>0, my_list)) # [3, 5, 1, 7] list( map( lambda x: abs(x), my_list)) [3, 4, 2, 5, 1, 7]
ΠΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (Ρ / Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²) ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ Π²Π½ΡΡΡΠΈ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ.
def foo(msg):
print(msg)
greet = lambda x = "hello world": foo(x)
greet()
ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ:
hello world
ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ , ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ lambda ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ².
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠΈΠ²ΠΎΡΡΡ
Π‘Π½Π°ΡΠ°Π»Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ:
- Π°ΡΠ³ΡΠΌΠ΅Π½Ρ (ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ): ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡ;
- ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ (ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ): ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ.
Π Python, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠΎ Π·Π°Π΄Π°Π½ΠΈΡ (Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ², Π³Π΄Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ / Π·Π°Π΄Π°Π½ΠΈΡ / ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ).
ΠΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° (Π΅ΡΠ»ΠΈ ΡΠΈΠΏ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ).
def foo(x): # Π·Π΄Π΅ΡΡ Ρ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
x[0] = 9 # ΠΡΠΎ ΠΌΡΡΠΈΡΡΠ΅Ρ 1ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ x,
# ΡΠ°ΠΊ ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ y Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠΉ Π½ΠΈΠΆΠ΅
print(x)
y = [4, 5, 6]
foo(y) # Π²ΡΠ·Π²Π°ΡΡ foo Ρ y Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°
# [9, 5, 6] # ΡΠΏΠΈΡΠΎΠΊ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ x, Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½
print(y)
# [9, 5, 6] # ΡΠΏΠΈΡΠΎΠΊ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ y, ΡΠΎΠΆΠ΅ Π±ΡΠ» Π²ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π½Π΅ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
def foo(x): # Π·Π΄Π΅ΡΡ x - ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ
# foo(y), ΠΌΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ y Π·Π½Π°ΡΠ΅Π½ΠΈΡ x
x[0] = 9 # ΠΡΠΎ ΠΌΡΡΠΈΡΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ, ΠΊΠ°ΠΊ x, ΡΠ°ΠΊ ΠΈ y
x = [1, 2, 3] # x ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ
# (y Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅ΡΡΡ)
x[2] = 8 # ΠΡΠΎ ΠΌΡΡΠΈΡΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ x, Π° Π½Π΅ ΡΠΏΠΈΡΠΎΠΊ y
y = [4, 5, 6] # y is the argument, x is the parameter
foo(y) # ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ Β«x = yΒ»,
# Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ ΡΡΡΠΎΠΊΠ΅ 1.
y
# [9, 5, 6] Π Python, ΠΌΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΡ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌ (ΡΠΎ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΡΡΠΏΠ°ΡΡ, ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡ) ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ (ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π°) ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ.
- ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠ΅: Π¦Π΅Π»ΡΠ΅, ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΡΠ΅ΠΆΠΈ, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΏΠΈΠΈ.
- Mutable: ΡΠΏΠΈΡΠΊΠΈ, ΡΠ»ΠΎΠ²Π°ΡΠΈ, Π½Π°Π±ΠΎΡΡ, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΌΡΡΠΈΡΠΎΠ²Π°ΡΡ.
x = [3, 1, 9] y = x x.append(5) # ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ x ΠΈ y, # ΠΎΠ±Π° x ΠΈ y ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ [3, 1, 9] x.sort() # ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ x ΠΈ y # (ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΠΌΠ΅ΡΡΠ΅) x = x + [4] # ΠΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ (ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΏΠΈΡ # ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ x, Π° Π½Π΅ Π΄Π»Ρ y) z = x # z ΡΠ°Π²Π½ΠΎ x([1, 3, 9, 4]) x += [6] # ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ ΠΊΠ°ΠΊ x, # ΡΠ°ΠΊ ΠΈ z (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ). x = sorted(x) # ΠΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ (ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΏΠΈΡ Π΄Π»Ρ x) x # [1, 3, 4, 5, 6, 9] y # [1, 3, 5, 9] z # [1, 3, 5, 9, 4, 6]
Return
ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΡ Π² Python ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ΄Π΅ΡΡ Π²ΡΠ·ΠΎΠ² makeInc ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ Π΄Π»Ρ x , ΡΡΡΠ»ΠΊΠ° Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ inc.ΠΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠ·ΠΎΠ² makeInc ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° Π΄ΡΡΠ³ΡΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ x .
def makeInc(x):
def inc(y):
# x "ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½" ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ inc
return y + x
return inc
incOne = makeInc(1)
incFive = makeInc(5)
incOne(5)
# 6
incFive(5)
# 10ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠΌ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ· ΠΎΠΊΡΡΠΆΠ°ΡΡΠ΅ΠΉ Π΅Π΅ ΡΡΠ΅Π΄Ρ, Π² ΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ°ΡΡ ΠΈΡ
def makeInc(x):
def inc(y):
# ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ x Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ
x += y
return x
return inc
incOne = makeInc(1)
incOne(5)
# UnboundLocalError: local variable 'x' referenced before assignmentPython 3 ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ nonlocal Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠ΅ Β Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π·Π°ΠΊΡΡΡΠΈΡ Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ.
def makeInc(x):
def inc(y):
nonlocal x # ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ x
x += y
return x
return inc
incOne = makeInc(1)
incOne(5)
# 6Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Π Π΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ — ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ΅Π±Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π»Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ factorial(n) = n*(n-1)*(n-2)*...*3*2*1.ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ
def factorial(n):
#n Π·Π΄Π΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ
if n == 0:
return 1
else:
return n*factorial(n-1)Π²ΡΡ ΠΎΠ΄Ρ Π·Π΄Π΅ΡΡ:
factorial(0) #1 factorial(1) #1 factorial(2) #2 factorial(3) # 6
ΠΊΠ°ΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ , ΡΡΠΎ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ , ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠΎΡΠΎΠΉ return factorial(n-1) , Π³Π΄Π΅ ΡΡΠ½ΠΊΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅Ρ ΡΠ΅Π±Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΡΠΌΠ±Π΄Π° , ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΡΠΌΠ±Π΄Π° — Π±Ρ ΡΡΠΎ — ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ:
factorial = lambda n: 1 if n == 0 else n*factorial(n-1)
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ Π²ΡΡΠ΅.
ΠΡΠ΅Π΄Π΅Π» ΡΠ΅ΠΊΡΡΡΠΈΠΈ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π΅Π» Π³Π»ΡΠ±ΠΈΠ½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Python. ΠΠΎΠ³Π΄Π° ΠΏΡΠ΅Π΄Π΅Π» Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ RuntimeError:
def cursing(depth):
try:
cursing(depth + 1) # actually, re-cursing
except RuntimeError as RE:
print('I recursed {} times!'.format(depth))
cursing(0)
# I recursed 998 times! ΠΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΠΏΡΠ΅Π΄Π΅Π» Π³Π»ΡΠ±ΠΈΠ½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ sys.setrecursionlimit(limit) ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΎΡ ΠΏΡΠ΅Π΄Π΅Π» sys.getrecursionlimit() .
import sys sys.setrecursionlimit(2000) cursing(0) # I recursed 1998 times!
ΠΠ· Python 3.5, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ RecursionError , ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΎΡ RuntimeError .
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Π€ΡΠ½ΠΊΡΠΈΠΈ Π² Python ΡΠ²Π»ΡΡΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΊΠ»Π°ΡΡΠ½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² Π»ΡΠ±ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
def fibonacci(n):
def step(a,b):
return b, a+b
a, b = 0, 1
for i in range(n):
a, b = step(a, b)
return aΠ€ΡΠ½ΠΊΡΠΈΠΈ Π·Π°Ρ Π²Π°ΡΠ° ΠΈΡ ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π²ΠΈΠ΄ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
def make_adder(n):
def adder(x):
return n + x
return adder
add5 = make_adder(5)
add6 = make_adder(6)
add5(10)
#15
add6(10)
#16
def repeatedly_apply(func, n, x):
for i in range(n):
x = func(x)
return x
repeatedly_apply(add5, 5, 1)
# 26 ΠΡΠ΅ΡΠ°ΡΠΈΡ ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΡΠ»ΠΎΠ²Π°ΡΡ
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΈΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²: ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅, ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ»ΠΎΠ² (kwargs).
ΠΠΎΡ ΡΠ΅ΡΠΊΠΎΠ΅ ΠΈ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
def unpacking(a, b, c=45, d=60, *args, **kwargs):
print(a, b, c, d, args, kwargs)
unpacking(1, 2)
# 1 2 45 60 () {}
unpacking(1, 2, 3, 4)
# 1 2 3 4 () {}
unpacking(1, 2, c=3, d=4)
# 1 2 3 4 () {}
unpacking(1, 2, d=4, c=3)
# 1 2 3 4 () {}
pair = (3,)
unpacking(1, 2, *pair, d=4)
# 1 2 3 4 () {}
unpacking(1, 2, d=4, *pair)
# 1 2 3 4 () {}
unpacking(1, 2, *pair, c=3)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: unpacking() got multiple values for argument 'c'
unpacking(1, 2, c=3, *pair)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: unpacking() got multiple values for argument 'c'
args_list = [3]
unpacking(1, 2, *args_list, d=4)
# 1 2 3 4 () {}
unpacking(1, 2, d=4, *args_list)
#1 2 3 4 () {}
unpacking(1, 2, c=3, *args_list)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: unpacking() got multiple values for argument 'c'
unpacking(1, 2, *args_list, c=3)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: unpacking() got multiple values for argument 'c'
pair = (3, 4)
unpacking(1, 2, *pair)
# 1 2 3 4 () {}
unpacking(1, 2, 3, 4, *pair)
# 1 2 3 4 (3, 4) {}
unpacking(1, 2, d=4, *pair)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: unpacking() got multiple values for argument 'd'
unpacking(1, 2, *pair, d=4)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: unpacking() got multiple values for argument 'd'
args_list = [3, 4]
unpacking(1, 2, *args_list)
# 1 2 3 4 () {}
unpacking(1, 2, 3, 4, *args_list)
# 1 2 3 4 (3, 4) {}
unpacking(1, 2, d=4, *args_list)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: unpacking() got multiple values for argument 'd'
unpacking(1, 2, *args_list, d=4)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: unpacking() got multiple values for argument 'd'
arg_dict = {'c':3, 'd':4}
unpacking(1, 2, **arg_dict)
# 1 2 3 4 () {}
arg_dict = {'d':4, 'c':3}
unpacking(1, 2, **arg_dict)
# 1 2 3 4 () {}
arg_dict = {'c':3, 'd':4, 'not_a_parameter': 75}
unpacking(1, 2, **arg_dict)
# 1 2 3 4 () {'not_a_parameter': 75
unpacking(1, 2, *pair, **arg_dict)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: unpacking() got multiple values for argument 'd'
unpacking(1, 2, 3, 4, **arg_dict)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: unpacking() got multiple values for argument 'd'
# ΠΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ
# Π½Π°Π΄ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΎΡΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²
unpacking(1, 2, **arg_dict, c=3)
# 1 2 3 4 () {'not_a_parameter': 75}
unpacking(1, 2, 3, **arg_dict, c=3)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: unpacking() got multiple values for argument 'c' ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠΈ Π² ΡΠΈΠ³Π½Π°ΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ»ΠΎΠ².
def f(*a, b):
pass
f(1, 2, 3)
# TypeError: f() missing 1 required keyword-only argument: 'b'
Π Python 3 ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΎΠ΄Π½Ρ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΡ Π² ΡΠΈΠ³Π½Π°ΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°.
def f(a, b, *, c):
pass
f(1, 2, 3)
# TypeError: f() takes 2 positional arguments but 3 were given
f(1, 2, c=3)
# No error 2$ Π΄ΠΎ $\R$.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π² Π±ΠΎΠ»Π΅Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ
ΡΡΠ»ΠΎΠ²ΠΈΡΡ
, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ
Ρ
ΠΎΡΠΎΡΠΎ; ΡΡΠΎ Π½Π°ΡΠ° ΡΠ΅Π»Ρ. Π Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
ΡΠ°Π·Π΄Π΅Π»Π°Ρ
Π³Π»Π°Π²Ρ ΠΌΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ
ΡΠ΅ΠΌ ΡΠ΅ΠΎΡΠΈΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ². Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° $A$ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ $B$ ΠΌΡ
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ $f$ ΡΠ°ΠΊΠΎΠ΅, ΡΡΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ
$a\in A$ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ $b\in B$ ΡΠ°ΠΊΠΎΠΉ, ΡΡΠΎ $f(a)=b$. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ $A$
Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±Π»Π°ΡΡΡΡ $f$, Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ $B$
Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΠΉ Π΄ΠΎΠΌΠ΅Π½ . ΠΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ, ΡΡΠΎ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ $f$
ΠΈ $g$ ΡΠ°Π²Π½Ρ , Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ Π΄ΠΎΠΌΠ΅Π½ ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅
codomain, ΠΈ Π΅ΡΠ»ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ $a$ Π² Π΄ΠΎΠΌΠ΅Π½Π΅ $f(a)=g(a)$.
(Π ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠ°ΡΠΊΡΡΡΠΈΡ ΠΏΠ°ΠΊΠΎΡΡΠ΅ΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π°Π±Π·Π°Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅! ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ»ΠΎΠ²Π° Β«Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Β» ΠΈ Β«ΠΏΡΠ°Π²ΠΈΠ»ΠΎΒ» ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠ°ΠΌΠΈ Β«ΡΡΠ½ΠΊΡΠΈΠΈΒ». ΠΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Β«ΡΠ΅ΡΠΈΡΡΒ», ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ², Π½ΠΎ Ρ Π½Π°Ρ Π½Π΅Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ· «Π½Π°Π±ΠΎΡΠ°». ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π²Π½Ρ.)
ΠΡ ΡΠ°ΡΡΠΎ ΠΏΠΈΡΠ΅ΠΌ $f\colon A\to B$, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ $f$ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΎΡ $A$ Π΄ΠΎ $B$. ΠΠ½ΠΎΠ³Π΄Π° ΡΠ»ΠΎΠ²ΠΎ Β«ΠΊΠ°ΡΡΠ°Β» ΠΈΠ»ΠΈ Β«ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅Β» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ Β«ΡΡΠ½ΠΊΡΠΈΠΈΒ». ΠΡΠ»ΠΈ $f\colon A\to B$ ΠΈ $f(a)=b$, ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ, ΡΡΠΎ $b$ β ΡΡΠΎ -ΠΎΠ±ΡΠ°Π· $a$ ΠΏΡΠΈ $f$ , Π° $a$ β ΡΡΠΎ -ΠΎΠ±ΡΠ°Π· ΠΏΡΠΎΠΎΠ±ΡΠ°Π·Π° $b$. Π΄ΠΎ $f$ . ΠΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ½Π° ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΡΡΠ°Π·Ρ Β«ΠΌΠ΅Π½Π΅Π΅ $f$Β» ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΡΠΈΡΡ.
ΠΡΠΈΠΌΠ΅Ρ 4.1.1. ΠΡ Π·Π½Π°ΠΊΠΎΠΌΡ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ $f\colon \R\to \R$:
ΠΠΎΠ»ΠΈΠ½ΠΎΠΌΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΈΠ³ΠΎΠ½ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ,
ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π§Π°ΡΡΠΎ Π²Ρ ΠΈΠΌΠ΅Π»ΠΈ Π΄Π΅Π»ΠΎ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Ρ ΠΊΠΎΠ΄ΠΎΠΌΠ΅Π½ΠΎΠΌ $\R$
Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ $\R$.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, $f(x)=\sqrt x$ ΠΈΠΌΠ΅Π΅Ρ
Π΄ΠΎΠΌΠ΅Π½ $[0,\infty)$ ΠΈ $f(x)=1/x$ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΠΌΠ΅Π½ $\{x\in \R : x\ne 0\}$.
ΠΠ΅Π³ΠΊΠΎ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ Π΅ΡΡΡ Π³ΡΠ°Ρ
ΡΡΠ½ΠΊΡΠΈΡ $f\colon \R\to \R$ ΡΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄Π°Ρ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ
ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°Π΅Ρ Π΅Π³ΠΎ ΡΠΎΠ²Π½ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΡΠΊΠ΅. ΠΡΠ»ΠΈ ΡΡΠ° ΡΠΎΡΠΊΠ° $(a,b)$, ΡΠΎ
$f(a)=b$. $\ΠΊΠ²Π°Π΄ΡΠ°Ρ$
ΠΡΠΈΠΌΠ΅Ρ 4.1.2. Π€ΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠ² Π²ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ $A=\{1,2,3,4\}$ ΠΈ $B=\{r,s,t,u,v\}$, ΡΠΎ «$f(1)= t,f(2)= s,f(3)= u,f(4)= t$» ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡ $A$ Π΄ΠΎ $B$. ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ, Π±Π΅Π· ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΡΠ»Π΅. $\ΠΊΠ²Π°Π΄ΡΠ°Ρ$
ΠΡΠΈΠΌΠ΅Ρ 4.1.3 Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈΠ· $A=\{1,2,3,4,5\}$ Π²
$B=\{r,s,t,u\}$:
$$ \matrix{f(1)= t & \quad & g(1)=u\cr f(2)= s
& \quad & g(2)=r\cr f(3)= r & \quad & g(4)=s\cr f(3)= u & \quad &
g(5)=t\cr f(4)= u & \quad & \cr f(5)= r & \quad & \cr}
$$
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ $f$ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ $3$ Π² Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° $g$ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ $3$.
ΠΊ Π»ΡΠ±ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ.
ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΎΠΌΠ΅Π½Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·. (ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ
codomain ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π° ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π²ΠΎΠ²ΡΠ΅. Π
ΠΏΡΠΈΠΌΠ΅Ρ 4.1.2, ΡΠ»Π΅ΠΌΠ΅Π½Ρ $t$ Π΄ΠΎΠΌΠ΅Π½Π° ΠΊΠΎΠ΄Π°
ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° ΠΏΡΠΎΠΎΠ±ΡΠ°Π·Π°, Π° $r$ ΠΈ $v$ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ. ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΡΡΠΎ
ΡΠΈΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π° Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΠ°Π·Π΄Π΅Π»Π°Ρ
.) $\square$
ΠΡΠΈΠΌΠ΅Ρ 4.1.4. ΠΡΠ»ΠΈ $A$ ΠΈ $B$ Π½Π΅ΠΏΡΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΈ $b_0$ β ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ $B$, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ $f\colon A\to B$ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅ $f(a)=b_0$ Π΄Π»Ρ Π²ΡΠ΅Ρ $a\in $. ΠΠΎΡΡΠΎΡΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΡ $A$ Π΄ΠΎ $B$ ΡΡΠΎΠ»ΡΠΊΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ $B$. $\ΠΊΠ²Π°Π΄ΡΠ°Ρ$
ΠΡΠΈΠΌΠ΅Ρ 4.1.5. ΠΠ»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° $A$ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠΎΠΆΠ΄Π΅ΡΡΠ²Π΅Π½Π½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ $i_A\colon A\to A$ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Ρ $i_A(a)=a$ Π΄Π»Ρ
Π²ΡΠ΅ $a\in A$. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠΆΠ΄Π΅ΡΡΠ²Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π²ΡΠ΅
ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π° ΡΠ΅Π±Ρ. Π₯ΠΎΡΡ ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠ΅ΠΉ,
ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈ Π²Π°ΠΆΠ½ΠΎ. Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠΆΠ΄Π΅ΡΡΠ²Π° Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΏΠΎΡΡΠΈ ΡΠ°ΠΊ ΠΆΠ΅,
ΡΠ°ΠΊ, ΠΊΠ°ΠΊ 0 Π΄Π΅Π»Π°Π΅Ρ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ 1 ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ
ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅.
$\ΠΊΠ²Π°Π΄ΡΠ°Ρ$
ΠΡΠΈΠΌΠ΅Ρ 4.1.6. ΠΡΠ»ΠΈ $A\subseteq B$, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ $f\colon A\to B$ Π½Π° $f(a)=a$ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ $a\in A$. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° $i_A$; Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°Π·Π½ΠΈΡΠ° Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅. $\ΠΊΠ²Π°Π΄ΡΠ°Ρ$
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ 4.1.7. ΠΡΠ»ΠΈ $f\colon A\to B$ ΠΈ $g\colon B\to C$ β ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ $g\circ f\colon A\to C$ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Ρ $(g\circ f)(a)=g(f(a))$ Π΄Π»Ρ Π²ΡΠ΅Ρ $Π°\Π² Π$. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΡΡΠ°Π² ΠΈΠ· Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ $f$ β ΡΡΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ $a$, Ρ ΠΎΡΡ ΠΎΠ½ ΡΠΊΠ°Π·Π°Π½ ΡΠΏΡΠ°Π²Π°. ΠΡΠΎΡ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΏΡΡΠ°Π½Π½ΠΎΡΡΡ ΡΠΎΠ·Π½Π°Π½ΠΈΡ. $\ΠΊΠ²Π°Π΄ΡΠ°Ρ$ 9+\cup\{0\}\to \R$ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ $(g\circ f)(x)=\sin\sqrt x$. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ $(f\circ g)(x)=\sqrt{\sin x}$ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ $x$, ΡΡΠΎ $\sin x\ge 0$. Π ΠΎΠ±ΡΠ΅ΠΌ, $f\circ g$ ΠΈ $g\circ f$ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π²Π½Ρ, ΠΈ (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅) ΠΈΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π² ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ ΡΠΎΡΠΊΠ°Ρ . $\ΠΊΠ²Π°Π΄ΡΠ°Ρ$
ΠΡΠΈΠΌΠ΅Ρ 4.1.9 ΠΡΠ»ΠΈ $A=\{1,2,3,4\}$, $B=\{r,s,t,u\}$, $C=\{\$,\%,\#,\&\ }$ ΠΈ $$ \matrix{ f(1) & = u &\quad g(r)&= \%\cr f(2) & = r &\quad g(s)&= \#\cr f(3) & = s &\quad g(t)&= \$\cr f(4) & = u &\quad g(u)&= \$\cr } $$ ΡΠΎΠ³Π΄Π° $$ \eqalign{ (g\circ f)(1) & = \$ \cr (g\circ f)(2) & = \% \cr (g\circ f)(3) & = \# \cr (g\circ f)(4) & = \$ \cr} $$ $\ΠΊΠ²Π°Π΄ΡΠ°Ρ$
ΠΡΠΈΠΌΠ΅Ρ 4.
1.10. ΠΡΠ»ΠΈ $A\subseteq B$, $f\colon A\to B$ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
(ΠΏΡΠΈΠΌΠ΅Ρ 4.1.6) ΠΈ $g\colon B\to C$ β ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΎ
$g\circ f\colon A\to C$ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡ $g$ Π΄ΠΎ $A$ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ
$Π³\Π²Π΅ΡΡ_Π$. ΠΠ»Ρ Π²ΡΠ΅Ρ
$a\in A$
$$ Π³\Π²Π΅ΡΡ_Π(Π°)=Π³(Ρ(Π°))=Π³(Π°),
$$
ΠΏΠΎΡΡΠΎΠΌΡ $g\vert_A$ β ΡΡΠΎ ΡΠ° ΠΆΠ΅ ΡΠ°ΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΠΎ ΠΈ $g$, Π½ΠΎ Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌ
Π΄ΠΎΠΌΠ΅Π½.
$\ΠΊΠ²Π°Π΄ΡΠ°Ρ$
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠΎΡΡΠΎΠ΅, Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅:
Π’Π΅ΠΎΡΠ΅ΠΌΠ° 4.1.11 ΠΡΠ»ΠΈ $f\colon A\to B$, ΡΠΎ $f\circ i_A=f=i_B\circ f$.
ΠΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ. ΠΡΠ΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΠΌΠ΅Π½ $A$ ΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΡΠΉ Π΄ΠΎΠΌΠ΅Π½ $B$. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ $a\in A$ $$ (f\circ i_A)(a)=f(i_A(a))=f(a)=i_B(f(a))=(i_B\circ f)(a). $$$\qed$
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½, ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½Π°, Ρ. Π΅. $(f\circ g)\circ h=f\circ (g\circ h)$ (ΡΠΌ. ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 7).
ΠΡΠΈΠΌΠ΅Ρ 4.1.1 Π Π΅ΡΠΈΡΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· $A=\{1,2,3,4\}$ Π² $B=\{r,s,t,u,v\}$. $$ \matrix{f(1)=s &\quad & g(1)= t &\quad & h(1)=v \cr f(2)=t &\quad & g(2)= r &\quad & h(2)=u \cr f(4)=u &\quad & g(3)= s &\quad & h(3)=t \cr &\quad & g(4)= r &\quad & h(2)=s \cr &\quad & &\quad & h(4)=r \cr } $$
ΠΡΠΈΠΌΠ΅Ρ 4.
1.2 ΠΡΡΡΡ $f\Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ \{s,t,u,v,w,x\}\to \{1,2,3,4,5\}$
ΠΈ $g\Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅
\{1,2,3,4,5\}\to \{m,n,o,p\}$ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ:
$$
\matrix{f(s) = 2 &\quad& g(1) = m \cr
f(t) = 1 &\quad& g(2) = n \cr
f(u) = 4 &\quad& g(3) = p \cr
f(v) = 2 &\quad& g(4) = o \cr
f(w) = 1 &\quad& g(5) = m \cr
f(x) = 2 &&&\cr}
$$
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
92$. ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΡΠΈΠΌΠ΅Ρ 4.1.4 ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ $f$ ΠΈ $g$ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈΠ· $A$ Π² $A$. ΠΡΠ»ΠΈ $f\circ f=g\circ g$, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ ΠΎΡΡΡΠ΄Π°, ΡΡΠΎ $f=g$?
ΠΡΠΈΠΌΠ΅Ρ 4.1.5 ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ $A$ ΠΈ $B$ β ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ Π½Π΅ΠΏΡΡΡΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Ρ $m$ ΠΈ $n$ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΡ $A$ Π΄ΠΎ $B$?
ΠΡΠΈΠΌΠ΅Ρ 4.1.6 ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ $f$ ΠΈ $g$ β Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· $A$ Π² $B$. ΠΡΠ»ΠΈ $A=X\ΡΠ°ΡΠΊΠ° Y$, Π΄ΠΎΠΊΠ°ΠΆΠΈΡΠ΅ $f=g$ ΡΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° $f\vert_X=g\vert_X$ ΠΈ $f\vert_Y=g\vert_Y$.
ΠΡΠΈΠΌΠ΅Ρ 4.1.7 ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ $f\colon C\to D$, $g\colon B\to C$ ΠΈ $h\colon A\to B$
ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠΎΠΊΠ°ΠΆΠΈΡΠ΅ $(f\circ g)\circ h=f\circ (g\circ h)$.
ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ C Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ ΠΎ ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ·ΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ C ΠΠΠ ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΡΠ·ΡΠΊΠ° C Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ Β ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠΊΠΎΠ»ΠΎ Π Π°Π·Π΄Π΅Π» Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π C , Π Π°Π·Π΄Π΅Π» ΡΡΡΠ»ΠΎΠΊ Π½Π° C , Π Π°Π·Π΄Π΅Π» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Π½Π° C , Π Π°Π·Π΄Π΅Π» ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π° C ΠΈ Π Π°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° C, ΡΠ°Π·Π΄Π΅Π» Β«Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΒ» Π½Π° C.
- Π Π°Π·Π΄Π΅Π» Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
- Π‘Π΅ΠΊΡΠΈΡ ΡΠ²ΡΠ·ΠΈ
- Π Π°Π·Π΄Π΅Π» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
- ΠΠ»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡ Π Π°Π·Π΄Π΅Π»
- Π‘Π΅ΠΊΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Main()
- Π Π°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- ΠΡΠΈΠΌΠ΅Ρ
ΠΡΡΡΡΡΠ΅ ΡΡΡΠ»ΠΊΠΈ
ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΡΠ·ΡΠΊΠ° C:
ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° C ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 6 ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², ΡΡΠΈ ΡΠ°Π·Π΄Π΅Π»Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π Π°Π·Π΄Π΅Π» Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π Π°Π·Π΄Π΅Π» ΡΡΡΠ»ΠΎΠΊ, Π Π°Π·Π΄Π΅Π» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, Π Π°Π·Π΄Π΅Π» Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ
ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ, Π Π°Π·Π΄Π΅Π» ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ, Π Π°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° Π½ΠΈΠΆΠ΅.
| ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ C |
Β — Π Π°Π·Π΄Π΅Π» Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. Π Π°Π·Π΄Π΅Π» Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΡΡΡΠΎΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°, Π΄Π°ΡΠ° ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. Π Π°Π·Π΄Π΅Π» Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π»ΡΠ±ΠΎΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π’Π΅ΠΊΡΡ ΠΌΠ΅ΠΆΠ΄Ρ /* Π */ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π² C.
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: /* ΠΡΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ */
— Π Π°Π·Π΄Π΅Π» ΡΡΡΠ»ΠΎΠΊ: Π Π°Π·Π΄Π΅Π» ΡΡΡΠ»ΠΎΠΊ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ #include .
— Π Π°Π·Π΄Π΅Π» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ: ΠΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ. ΠΠ°ΠΊΡΠΎΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ (ΠΌΠ°ΠΊΡΠΎΡ β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ # ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ .
— Π Π°Π·Π΄Π΅Π» Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ: Π Π°Π·Π΄Π΅Π» Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π’Π°ΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Global Variables ΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ.
— Π‘Π΅ΠΊΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Main(): Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄Π½Ρ ΡΠ΅ΠΊΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ main() Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ c. ΠΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ:Β ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡ Π§Π°ΡΡΡ Π ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ ΡΠ°ΡΡΡ .
Β Β Π ΡΠ°ΡΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΡΠ°ΡΡΠΈ.
— Π Π°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: Π Π°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ main(), Ρ
ΠΎΡΡ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.

sort() # ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ x ΠΈ y
# (ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΠΌΠ΅ΡΡΠ΅)
x = x + [4] # ΠΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ (ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΏΠΈΡ
# ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ x, Π° Π½Π΅ Π΄Π»Ρ y)
z = x # z ΡΠ°Π²Π½ΠΎ x([1, 3, 9, 4])
x += [6] # ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ ΠΊΠ°ΠΊ x,
# ΡΠ°ΠΊ ΠΈ z (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ).
x = sorted(x) # ΠΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ (ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΏΠΈΡ Π΄Π»Ρ x)
x
# [1, 3, 4, 5, 6, 9]
y
# [1, 3, 5, 9]
z
# [1, 3, 5, 9, 4, 6]