ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΊΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Python
ΠΠ»Π°Π²Π° 2
>
Π£ΡΠΎΠ²Π΅Π½Ρ 3
Π¦Π΅Π»Ρ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ lambda-ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡ ΠΎΠ΄Π½ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΎΠ±ΡΠ°ΡΡ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠΊΡΡ ΠΈ ΡΠ³ΠΎΠ΄Ρ Π½Π° ΠΏΠΎΠ»Π΅ ΠΏΠΎΡΡΠΈ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΡΠ±ΠΎΡΡ, ΡΡΠΎΠ±Ρ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ, ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈ ΠΏΡΠΎΠ΄Π°Π²Π°ΡΡ. ΠΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠΈ Π³ΠΎΡΠΎΠ²Ρ, ΡΡΠΎΠ±Ρ Ρ Π²Π°Ρ Π±ΡΠ»Π° ΠΎΡΠ΅Π½ΠΊΠ° ΡΠΎΠ³ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ.
ΠΠ»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ lambda-ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½ΠΎ ΠΎΠ½ Π±ΡΡΡΡΠ΅Π΅, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠ΅.
# Normal Custom Function
def calculate(x , y , z) :
return( (x+y+z) *2 )
# Lambda Function
calculate = lambda x,y,z : (x + y + z) * 2
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ lambda-ΡΡΠ½ΠΊΡΠΈΡ. Π₯ΠΎΡΡ ΠΎΠ½ΠΈ Π·Π°ΠΏΠΈΡΠ°Π½Ρ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ, ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°, lambda-ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΡΠ΅ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΡΡΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π° Π½Π° Π»Π΅ΡΡ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΠΊΠΎΠ΄Π°. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΊΠΎΠ΄Π°.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° (2) ΡΠΈΠΏΠ° ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΠΏΠΎΠ»Π΅: "fruits" ΠΈ "berries". ΠΠ· ΡΡΠΈΡ
Π΄Π²ΡΡ
(2) ΡΠΈΠΏΠΎΠ², Π΅ΡΡΡ ΡΡΠΈ (3) ΡΡΡΠΊΡΠ°: apples, pears ΠΈ oranges; ΠΈ ΡΡΠΈ (3) ΡΠ³ΠΎΠ΄Ρ: red, blue ΠΈ purple.
Π‘Π½Π°ΡΠ°Π»Π° Π½Π°ΡΡΡΠΎΠΉΡΠ΅ lambda-ΡΡΠ½ΠΊΡΠΈΡ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½ΡΡ Π²ΡΡΠ΅, Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ calculate, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΎΠ², ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
Π½Π° ΡΠ΅Π·ΠΎΠ½, ΠΏΡΡΡΠΌ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΡ
Π½Π° Π΄Π²Π° (2). Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΄ΡΡΠ³ΡΡ lambda-ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ estimate Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ
ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ speak. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π°ΡΡΡΠΎΠΉΡΠ΅ lambda-ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ total, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ Π²ΡΡΠΈΡΠ°Π΅Ρ ΡΡΠ΅ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π°Π·Π²Π°Π½Π½ΠΎΠ΅ loss.
# Calculate items calculate = lambda x,y,z : (x + y + z) * 2 # Estimate items estimate = lambda number , name : player.speak( "I estimate %d %s this season" % (number,name) ) # Total all items total = lambda num1, num2, loss : ( (num1 + num2) - loss)
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΠ΅Ρ
(3) ΡΡΡΠΊΡΠΎΠ² ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π° ΠΏΠΎΠ»Π΅. ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊ ΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΌΠ΅ΡΠΊΠ΅ X ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ lambda-ΡΡΠ½ΠΊΡΠΈΡ calculate() ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΡΡΠΊΡΠΎΠ², ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ fruit_number, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: fruit_number = calculate(orange,pear,apple). ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ lambda-ΡΡΠ½ΠΊΡΠΈΡ estimate() Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ fruit_number Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΡΠ»Π° ΠΈ "fruits" Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: estimate(fruit_number, "fruits" ).
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΠ΅ Ρ ΡΡΡΠΊΡΠ°ΠΌΠΈ, ΠΏΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊ ΡΠ²Π΅ΡΠ»ΠΎΠΉ ΠΌΠ΅ΡΠΊΠ΅ X ΠΈ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Ρ ΡΠ³ΠΎΠ΄Π°ΠΌΠΈ. ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠ΅Ρ
(3) ΡΠ³ΠΎΠ΄ Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ ΠΏΠΎΡΡΠΈΡΠ°Π»ΠΈ Π½Π° ΠΏΠΎΠ»Π΅, Π·Π°ΡΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ lambda-ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ ΡΡΡΠΊΡΠ°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: berry_number = calculate(red,blue,purple). ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ lambda-ΡΡΠ½ΠΊΡΠΈΡ estimate Ρ berry_number ΠΈ "berries" Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ doc, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΏΡΠΎΡΠ»ΡΡ
ΠΌΠ΅ΡΡΡΠ΅Π² Π΄Π»Ρ ΡΡΡΠ°ΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ. ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠΊΠ»Π°Π΄, ΠΏΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊ Π·ΠΎΠ»ΠΎΡΠΎΠΉ ΠΌΠ΅ΡΠΊΠ΅ X ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ speak() Ρ ΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΎΠΉ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π½Π° ΡΡΠΎΠ»Π΅ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΡΠ»Π° ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΡΠ°.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΠΈΡΠ»Π° ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΡΠ° ΡΡΠ°Π½ΡΡ Π²Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ, ΠΏΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊ ΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΌΠ΅ΡΠΊΠ΅ X Π½Π° ΡΠΈΠΎΠ»Π΅ΡΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ²ΡΠ΅, Π²ΡΡΠ°Π½ΡΡΠ΅ Π»ΠΈΡΠΎΠΌ ΠΊ ΡΡΠΎΠ»Ρ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈΡΠΎΠ³ΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΡΠ°. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ season, ΡΡΠΎΠ±Ρ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΈΡΠΎΠ³ΠΈ ΡΠ΅Π·ΠΎΠ½Π°: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ fruit_number ΠΈ berry_number Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΡΠ΅Π», ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ doc, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ΅ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: season = total(berry_number,fruit_number, number found in doc constant)
ΠΠ°Π²Π΅ΡΡΠΈΡΠ΅ ΡΡΠΎΠ²Π΅Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ lambda-ΡΡΠ½ΠΊΡΠΈΡ estimate() Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ season Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΡΠ»Π° ΠΈ "products" Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°Π·Π²Π°Π½ΠΈΡ.