🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° 🐍
2.88K subscribers
778 photos
4 videos
279 links
🐍 Канал ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° языкС Python. ВСматичСскиС ΡƒΡ€ΠΎΠΊΠΈ ΠΈ Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠΈ.

πŸ‘½ Админ - @it_dashka
πŸ”Š ΠšΡƒΠΏΠΈΡ‚ΡŒ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ: https://telega.in/c/byteofpython

πŸ‘‰ Π§Π°Ρ‚: @abyteofpython
πŸ‘‰ ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ: @byteofpython
Download Telegram
Π‘Π»ΠΎΠΊ else

Если Π²Π΄Ρ€ΡƒΠ³ Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΡ‚ случай, Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² if Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ False, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ else.

Если Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ language == "english" Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True, Ρ‚ΠΎ выполняСтся Π±Π»ΠΎΠΊ if, ΠΈΠ½Π°Ρ‡Π΅ выполняСтся Π±Π»ΠΎΠΊ else. И ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС условиС language == "english" Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ False, Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ инструкция ΠΈΠ· Π±Π»ΠΎΠΊΠ° else.

ΠŸΡ€ΠΈΡ‡Π΅ΠΌ инструкции Π±Π»ΠΎΠΊΠ° else Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ отступы ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° строки. НапримСр, Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ print("End") Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ отступа, поэтому ΠΎΠ½Π° Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π±Π»ΠΎΠΊ else ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡŒΡΡ Π²Π½Π΅ зависимости, Ρ‡Π΅ΠΌΡƒ Ρ€Π°Π²Π½ΠΎ условиС language == "english".

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #if #конструкции
ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ try..except

try..except ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, смотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

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

ПослС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова except ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ValueError ΠΈΠ»ΠΈ KeyError). ПослС слова except Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ стокС ΠΈΠ΄ΡƒΡ‚ инструкции Π±Π»ΠΎΠΊΠ° except, выполняСмыС ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Рассмотрим ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ строки Π² число, вторая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

ΠŸΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ строки Π²Ρ‹Π²ΠΎΠ΄ числа Π½Π° консоль Π½Π΅ происходит, Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Π±Π»ΠΎΠΊΡƒ except. Но ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ числа всС выполняСтся Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΈ соотвСтствСнно Π±Π»ΠΎΠΊ except Π½Π΅ выполняСтся.

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #конструкции #try_except
Pattern matching. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ match.

Начиная с вСрсии 3.10 Π² языкС Python появилась такая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΊ pattern matching (сопоставлСниС шаблонов). Pattern matching прСдставляСт ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ конструкции match, которая позволяСт ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ шаблоном. И Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ соотвСтствуСт ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ дСйствия. Π’ этом смыслС конструкция match ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ if/else/elif, которая выполняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ дСйствия Π² зависимости ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ условия. Однако Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ match Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΡˆΠΈΡ€Π΅ - ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· составных Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ дСйствия ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ частям ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ match ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅:

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #pattern_matching #конструкции #match
Pattern matching. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ match. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅.

ПослС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова match ΠΈΠ΄Π΅Ρ‚ сравниваСмоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. И Π·Π°Ρ‚Π΅ΠΌ послС двоСточия Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… строках Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ выраТСния case. ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ выраТСния case указываСтся шаблон, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ сравниваСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· match. ПослС шаблона Ρ‡Π΅Ρ€Π΅Π· Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π°Π±ΠΎΡ€ выполняСмых дСйствий Π±Π»ΠΎΠΊΠ° case.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ match ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сравниваСт Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с шаблонами ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ² case. И Ссли Π±Ρ‹Π» Π½Π°ΠΉΠ΄Π΅Π½ шаблон ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π±Π»ΠΎΠΊΠ° case соотвСтствуСт Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ ΠΈΠ· match, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ инструкции ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° case.

Π’ качСствС ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ²/шаблонов, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ выраТСния, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ элСмСнтов ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² классов.

Π’Π½Π°Ρ‡Π°Π»Π΅ рассмотрим ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Π² качСствС шаблона Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². НапримСр, Π² зависимости ΠΎΡ‚ языка Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ привСтствСнноС сообщСниС:

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #pattern_matching #конструкции #match
Pattern matching. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ match. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅.

Π—Π΄Π΅ΡΡŒ функция print_hello ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ language, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСдаСтся Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ язык. Π’ самой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ конструкция match сравниваСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ language. Π’ Π±Π»ΠΎΠΊΠ°Ρ… case ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ - строки, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ сопоставляСтся пСрСмСнная language.

НапримСр ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ print_hello("english") ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ language Ρ€Π°Π²Π΅Π½ "english", поэтому конструкция match Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ case:

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #pattern_matching #конструкции #match
Pattern matching. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ match. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π±Π»ΠΎΠΊΠΈ case ΠΈΠΌΠ΅ΡŽΡ‚ отступы ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° конструкции match. А инструкции ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° case ΠΈΠΌΠ΅ΡŽΡ‚ отступы ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° case. Но Ссли Π±Π»ΠΎΠΊ case ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ½ΡΡ‚ΡƒΠΊΡ†ΠΈΡŽ, Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ case:

ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· match Π½Π΅ соотвСтствуСт Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· шаблонов case, Ρ‚ΠΎ соотвСтствСнно Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· этих Π±Π»ΠΎΠΊΠΎΠ² case Π½Π΅ выполняСтся.

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #pattern_matching #конструкции #match
Pattern matching. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ match. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅.

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ нСсовпадСнии Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Ссли Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· шаблонов case Π½Π΅ соотвСтствуСт Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ match) Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСйствия ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π² этом случаС примСняСтся шаблон _ (ΠΏΡ€ΠΎΡ‡Π΅Ρ€ΠΊ):

Если Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· шаблонов case Π½Π΅ соотвСтствуСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ language, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π±Π»ΠΎΠΊ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #pattern_matching #конструкции #match
Pattern matching. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ match. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅.

Но Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊ case, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ сразу с нСсколькими знСчСниями. Π’ этом случаС значСния Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ:

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС шаблон case "american english" | "british english" | "english" соотвСтствуСт сразу Ρ‚Ρ€Π΅ΠΌ значСниям.

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #pattern_matching #конструкции #match
Pattern matching. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ match. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅.

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ выраТСния с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². НапримСр:

Π—Π΄Π΅ΡΡŒ функция operation ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° числа ΠΈ ΠΊΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ match сравниваСт ΠΊΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ значСниями ΠΈ Π² зависимости ΠΎΡ‚ значСния выполняСт Π½Π° числами ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. НапримСр, Ссли code Ρ€Π°Π²Π΅Π½ 1, Ρ‚ΠΎ выполняСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ case Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сумму чисСл a ΠΈ b.

Аналогично Ссли code = 2, Ρ‚ΠΎ возвращаСтся Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ, Π° Ссли code = 3, Ρ‚ΠΎ возвращаСтся ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ чисСл. Π’ΠΎ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях возвращаСтся 0.

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #pattern_matching #конструкции #match
Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° простых чисСл Π² спискС любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°

Найти этому ΠΊΠΎΠ΄Ρƒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ нСпросто. Однако этот ΠΊΠΎΠ΄ Π»Π΅Π³ΠΊΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для поиска Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² чисСл, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ‡Π΅Ρ‚Π½Ρ‹Π΅, Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ ΠΈΠ»ΠΈ чисСл, дСлящихся Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ число.

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #if #конструкции
ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ сравнСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ собой

ΠœΠ΅Ρ‚ΠΎΠ΄ lt(self, other) Π² Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния порядка сортировки ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ использовании встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ сортировки, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ sorted(). РСализация этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² классС позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ сравнСнии с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ для опрСдСлСния ΠΈΡ… ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ порядка.

НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ класс Point, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт Ρ‚ΠΎΡ‡ΠΊΡƒ Π½Π° плоскости с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ x ΠΈ y. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ lt(self, other) Π² классС Point Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ сравнСнии Π΄Π²ΡƒΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ учитывался ΠΈΡ… порядок ΠΏΠΎ оси x, Π° Π² случаС равСнства ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΏΠΎ оси x - ΠΏΠΎ оси y.

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #if #конструкции
ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ сравнСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ собой. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅.

ΠœΠ΅Ρ‚ΠΎΠ΄ le(self, other) позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° вашСго класса ΠΏΡ€ΠΈ сравнСнии с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° <=. НапримСр, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ сравнСния для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² вашСго класса (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° основС ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²), ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ le(self, other) Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π» True, Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ self мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ other согласно этим критСриям, ΠΈ False Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #if #конструкции