24 сСнтября 2020

🐍 4 ошибки Π² ΠΊΠΎΠ΄Π΅ Π½Π° Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π΄Π°ΡŽΡ‚ Π² вас Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ошибок Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π² Python. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ стоит ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Ρ…ΠΈΡ‚Ρ€ΠΈΡ‚ΡŒ систСму?
🐍 4 ошибки Π² ΠΊΠΎΠ΄Π΅ Π½Π° Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π΄Π°ΡŽΡ‚ Π² вас Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! МСня Π·ΠΎΠ²ΡƒΡ‚ Маша, я ΡƒΠΆΠ΅ ΡˆΠ΅ΡΡ‚ΡŒ Π»Π΅Ρ‚ занимаюсь коммСрчСской Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π½Π° Python, Π° Π΅Ρ‰Ρ‘ ΠΏΠΈΡˆΡƒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ объясняю Ρ‚Π΅ΠΎΡ€ΠΈΡŽ для студСнтов курса «Мидл Python-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΒ» ΠΎΡ‚ ЯндСкс.ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌΠ°. По ΠΎΠΏΡ‹Ρ‚Ρƒ знаю, Ρ‡Ρ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ‡Π°Ρ‰Π΅ всСго Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°Π΅Ρ‚ синтаксис языка, Π½ΠΎ Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° разбираСтся с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ Python Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌΒ».

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ программист-Π΄ΠΆΡƒΠ½ΠΈΠΎΡ€ допускаСт Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ошибки: Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, Π΅Π³ΠΎ ΠΊΠΎΠ΄ написан идСально, Π½ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Π—Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… Π½Π΅Π΄ΠΎΡ€Π°Π·ΡƒΠΌΠ΅Π½ΠΈΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Π½ΠΈΠ΅ нюансов Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Python. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сСгодня я Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΡŽ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ, ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΡƒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

1. ΠŸΠΎΠ»Π°Π³Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π° измСняСмыС Ρ‚ΠΈΠΏΡ‹ Π² значСниях ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Π£ Python Π΅ΡΡ‚ΡŒ прСкрасная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

        def pow(number, mod=2):
    pass

    

Или Ρ‚Π°ΠΊ:

        class Cat:
    legs = 4

    

И Π²Π°ΠΌ Π½Π΅ придётся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ возвСсти число (ΠΏΠΎΠΊΠ° эта ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ – 2), ΠΈΠ»ΠΈ ΡƒΡ‚ΠΎΡ‡Π½ΡΡ‚ΡŒ количСство Π½ΠΎΠ³ Ρƒ вашСго ΠΊΠΎΡ‚Π°.

Π’ Ρ‡Ρ‘ΠΌ ΠΏΠΎΠ΄Π²ΠΎΡ…? ЗначСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с нСизмСняСмыми ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ – строками, числами, frozen-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ boolean-Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. Если ΠΆΠ΅ Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π² качСствС значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ измСняСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, list, set ΠΈΠ»ΠΈ dict , Ρ‚ΠΎ Python Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€ΡƒΠ³Π°Ρ‚ΡŒΡΡ, Π½ΠΎ прСподнСсёт Π²Π°ΠΌ нСприятный ΡΡŽΡ€ΠΏΡ€ΠΈΠ·. Π’ΠΎΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²: ΠΊΠΎΡ‚Π° Π·Π°Π²ΠΎΠ΄ΠΈΠ»ΠΈ Π΄ΠΎΠΌΠ°, Π° ΠΎΠ½ посСлился Π΅Ρ‰Ρ‘ ΠΈ Π² офисС:

        class House:
    cats = []

my_house = House()
office = House()

my_house.cats.append('Tom')

print(my_house.cats)  # ["Tom"]
print(office.cats)  # ["Tom"]

    

Π§Π΅ΠΌ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°? Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ, ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ класс, выполнятся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π£ всСх экзСмпляров класса House Π±ΡƒΠ΄Π΅Ρ‚ ссылка Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ массив – cats.

Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±Ρ‹Π²Π°Π΅Ρ‚ слоТно ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ: Ссли Π²Ρ‹ создали всСго ΠΎΠ΄ΠΈΠ½ экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ, скорСС всСго, Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Но ΡΡ‚ΠΎΠ»ΠΊΠ½Ρ‘Ρ‚Π΅ΡΡŒ с Π½Π΅ΠΉ ΠΏΠΎΠ·ΠΆΠ΅.

Как Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ? ΠŸΡ€ΠΈΠ²Ρ‹ΠΊΠ°ΠΉΡ‚Π΅ вмСсто Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ None:

        class House:
    cats: list = None
    
    def __init__(self):
        self.cats = []

my_house = House()
office = House()

my_house.cats.append('Tom')

print(my_house.cats)  # ["Tom"]
print(office.cats)  # []

    

Π’ΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, ΠΈ всС ΠΊΠΎΡ‚Ρ‹ останутся Π½Π° своих мСстах!

2. Π’Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с ΠΌΠ°Π³ΠΈΠ΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ – с Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ установили Π΄ΠΎΠΌΠ° ΡƒΠΌΠ½ΡƒΡŽ ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ ΠΈ настроили Π΅Ρ‘ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° записывала дСйствия всСх, ΠΊΡ‚ΠΎ появляСтся Π² Π΅Ρ‘ ΠΏΠΎΠ»Π΅ зрСния, Π² тСкстовый Ρ„Π°ΠΉΠ». Π’Π°ΡˆΠ° функция Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

        from datetime import datetime

def create_log_entry(user, action, time=datetime.now()):
    return f'{time}: {user} {action}'

    

ПослС этого Π²Ρ‹, спокойныС ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ собой, ΡƒΡˆΠ»ΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π’ Ρ‡Ρ‘ΠΌ ΠΏΠΎΠ΄Π²ΠΎΡ…? Π’Π΅Ρ€Π½ΡƒΠ²ΡˆΠΈΡΡŒ Π΄ΠΎΠΌΠΎΠΉ, Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ записалось ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ событиС, ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Ρ‚Ρ‹ ΠΈ описания. ОТиданиС:

        create_log_entry('Алла', 'Π²Ρ‹ΡˆΠ»Π° ΠΈΠ· Π΄ΠΎΠΌΠ°')
'2020-09-14 15:20:03.333333: Алла Π²Ρ‹ΡˆΠ»Π° ΠΈΠ· Π΄ΠΎΠΌΠ°'
create_log_entry('Π’ΠΎΠΌ', 'ΠΏΠΎΠΉΠΌΠ°Π» ΠΌΡ‹ΡˆΡŒ')
'2020-09-14 15:25:12.795328: Π’ΠΎΠΌ ΠΏΠΎΠΉΠΌΠ°Π» ΠΌΡ‹ΡˆΡŒ'
create_log_entry('АдорианСц', 'Π·Π°Π²Π°Ρ€ΠΈΠ» ΠΊΠΎΡ„Π΅')
'2020-09-14 15:40:33.173500: АдорианСц Π·Π°Π²Π°Ρ€ΠΈΠ» ΠΊΠΎΡ„Π΅'
create_log_entry('АгСнт КСй', 'ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» Π½Π΅ΠΉΡ€Π°Π»Π°ΠΉΠ·Π΅Ρ€')
'2020-09-14 15:41:48.922357: АгСнт КСй ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» Π½Π΅ΠΉΡ€Π°Π»Π°ΠΉΠ·Π΅Ρ€'

    

Π Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ – всС события ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ Π² ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ врСмя:

        create_log_entry('Алла', 'Π²Ρ‹ΡˆΠ»Π° ΠΈΠ· Π΄ΠΎΠΌΠ°')
'2020-09-14 15:20:00.333333: Алла Π²Ρ‹ΡˆΠ»Π° ΠΈΠ· Π΄ΠΎΠΌΠ°'
create_log_entry('Π’ΠΎΠΌ', 'ΠΏΠΎΠΉΠΌΠ°Π» ΠΌΡ‹ΡˆΡŒ')
'2020-09-14 15:20:00.333333: Π’ΠΎΠΌ ΠΏΠΎΠΉΠΌΠ°Π» ΠΌΡ‹ΡˆΡŒ'
create_log_entry('АдорианСц', 'Π·Π°Π²Π°Ρ€ΠΈΠ» ΠΊΠΎΡ„Π΅')
'2020-09-14 15:20:00.333333: АдорианСц Π·Π°Π²Π°Ρ€ΠΈΠ» ΠΊΠΎΡ„Π΅'
create_log_entry('АгСнт КСй', 'ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» Π½Π΅ΠΉΡ€Π°Π»Π°ΠΉΠ·Π΅Ρ€')
'2020-09-14 15:20:00.333333: АгСнт КСй ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» Π½Π΅ΠΉΡ€Π°Π»Π°ΠΉΠ·Π΅Ρ€'

    

Π§Π΅ΠΌ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°? Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ datetime.now сработал всСго ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· – Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ встрСтил объявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ конструкциСй def create_log_entry. Python Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠ», какая Π΄Π°Ρ‚Π° ΠΈ врСмя Π±Ρ‹Π»ΠΈ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ постоянно использовал это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Как Π΅Ρ‘ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ? Π§Ρ‚ΠΎΠ±Ρ‹ врСмя Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ»ΠΎΡΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ вашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΡƒΠΆΠ½ΠΎ пСрСнСсти вычислСния Π² Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

        from datetime import datetime

def create_log_entry(user, action, time=None):
    time = datetime.now() if time is None else time
    return f'{time}: {user} {action}'

    

Π’Π°ΠΊ Π²Ρ‹ всё-Ρ‚Π°ΠΊΠΈ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Π²ΠΎ сколько Π’ΠΎΠΌ ΠΈ АдорианСц ΠΏΠΈΠ»ΠΈ ΠΊΠΎΡ„Π΅ ΠΈ ΠΊΠΎΠ³Π΄Π° Π°Π³Π΅Π½Ρ‚ КСй ворвался ΠΊ Π²Π°ΠΌ Π΄ΠΎΠΌΠΎΠΉ со своим Π½Π΅ΠΉΡ€Π°Π»Π°ΠΉΠ·Π΅Ρ€ΠΎΠΌ.

3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ int ΠΈ bool ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡ΠΈ dict

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ простой ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ языка Π½Π° чСловСчСский для своСго ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ True ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΎΡΡŒ ΠΊΠ°ΠΊ Β«ΠŸΡ€Π°Π²Π΄Π°Β», False – ΠΊΠ°ΠΊ Β«Π›ΠΎΠΆΡŒΒ», Π° 1 ΠΈ 0 ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ ΠΊΠ°ΠΊ Β«Π•ΡΡ‚ΡŒΒ» ΠΈ «НСт». ЗафиксируСм всС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ Π² словарС:

        vocabulary = {
    True: "ΠŸΡ€Π°Π²Π΄Π°", 
    False: "Π›ΠΎΠΆΡŒ",
    1: "Π•ΡΡ‚ΡŒ",
    0: "НСт"
}

    

Π’ Ρ‡Ρ‘ΠΌ ΠΏΠΎΠ΄Π²ΠΎΡ…? Π’ этом словарС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π°. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ:

        print(vocabulary[True])     # 'Π•ΡΡ‚ΡŒ'
print(vocabulary[False])    # 'НСт'
print(vocabulary[1])        # 'Π•ΡΡ‚ΡŒ'
print(vocabulary[0])        # 'НСт'

    

ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ. Π”Π°Π²Π°ΠΉΡ‚Π΅ заглянСм Π² сам ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ:

        print(vocabulary)           # {True: 'Π•ΡΡ‚ΡŒ', False: 'НСт'}

    

Из Π½Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΏΠ°Π»ΠΈ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°, Π° Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ – Π½Π΅Π²Π΅Ρ€Π½Ρ‹Π΅.

Π§Π΅ΠΌ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°? Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠ΅ΠΌ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ: Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ класс bool ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ.

  1. Класс bool, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π² Python 2.3, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ наслСдник класса int. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ True ΠΈ False – всСго лишь Π΄Π²Π° экзСмпляра класса bool, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ собой 1 ΠΈ 0. Π’ этом классС ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ __repr__ ΠΈ __str__, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ экзСмпляра, Π½ΠΎ Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌΒ» ΠΎΠ½ΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ простыми Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, сравнив True ΠΈ число. Зная это, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ boolean-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² матСматичСских выраТСниях. Но я Ρ‚Π°ΠΊ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ: ΠΊΠ°ΠΊ сказано Π² Π΄Π·Π΅Π½Π΅ Python (Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ, ввСдя Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ import this), Β«Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β». ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ boolean ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² PEP-0285.
  2. Π’Π°ΠΊΠΆΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ словаря находится hash-Ρ‚Π°Π±Π»ΠΈΡ†Π°: Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ всС Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, проходят Ρ‡Π΅Ρ€Π΅Π· hash-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½Π° опрСдСляСт, Π³Π΄Π΅ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ элСмСнт Π² памяти. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, поиск ΠΈ вставка Π΄Π°Π½Π½Ρ‹Ρ… становятся Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС, Ρ‡Π΅ΠΌ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ массивС. Если хочСтся ΡƒΠ·Π½Π°Ρ‚ΡŒ большС подробностСй ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ словарСй Π² Python, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° stackoverflow.

Как Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ? Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ° слСдуСт привСсти всС ΠΊΠ»ΡŽΡ‡ΠΈ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½Ρ‹Ρ… – str.

        vocabulary = {
    "True": "ΠŸΡ€Π°Π²Π΄Π°", 
    "False": "Π›ΠΎΠΆΡŒ",
    "1": "Π•ΡΡ‚ΡŒ",
    "0": "НСт"
}

    

Hash-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ пСрСстанут ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ, ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ словаря Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ, – ΠΎΠ±Ρ‰ΠΈΠΉ язык с ΡƒΠΌΠ½Ρ‹ΠΌ Π΄ΠΎΠΌΠΎΠΌ всё-Ρ‚Π°ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½:

        vocabulary[str(True)]   # "ΠŸΡ€Π°Π²Π΄Π°"

    

4. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ set для ускорСния вычислСний

Π‘Ρ€Π΅Π΄ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π±Ρ‹Ρ‚ΡƒΠ΅Ρ‚ распространённоС ΠΌΠ½Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ поиск элСмСнта Π² set Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС, Ρ‡Π΅ΠΌ Π² list. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΊΠΎΠ΄Π°:

        animals = ['cat', 'dog', 'bird', 'mouse', 'rat', 'elephant']

# <ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠ΄, Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ список>
if 'dog' in set(animals):
    # <дальнСйшиС вычислСния>

    

Π’ Ρ‡Ρ‘ΠΌ ΠΏΠΎΠ΄Π²ΠΎΡ…? Рассмотрим ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°:

        animals = ['cat', 'dog', 'bird', 'mouse', 'rat', 'elephant']

animals_set = set(animals)  
# НуТно ΠΏΡ€ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΏΠΎ всСм элСмСнтам list ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… Π² set (cΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: O(n))
if 'dog' in animals_set:  # НуТно Π½Π°ΠΉΡ‚ΠΈ элСмСнт Π²ΠΎ мноТСствС O(1)
    # <дальнСйшиС вычислСния>

    

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

Π§Π΅ΠΌ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°? ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго – Ρ€Π°Π·Π½ΠΎΠΉ ΠΏΡ€ΠΈΡ€ΠΎΠ΄ΠΎΠΉ list ΠΈ set. ΠŸΡ€ΠΈ объявлСнии Ρ‚ΠΈΠΏΠ° list рСзСрвируСтся участок памяти, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² памяти. Бписок ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ссылки Π½Π° Π»ΡŽΠ±Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹: строки, числа, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы ΠΈ Π΄Π°ΠΆΠ΅ Π½Π° самого сСбя. ВсС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² спискС хранятся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΉ элСмСнт, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ΄Ρ‘Ρ‚ ΠΏΠΎ ссылкам, начиная с ΠΏΠ΅Ρ€Π²ΠΎΠΉ, ΠΈ сравниваСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с искомым: найдя Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ½ останавливаСт поиск. Π§Π΅ΠΌ Π΄Π»ΠΈΠ½Π½Π΅Π΅ список, Ρ‚Π΅ΠΌ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ процСсс. Π’ O-Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ это записываСтся ΠΊΠ°ΠΊ O(n).

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± O-Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² АнализС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

set, Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ list, Ρ…Ρ€Π°Π½ΠΈΡ‚ элСмСнты, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΈΠ½Π°Ρ‡Π΅. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ½ содСрТит Π² сСбС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты, Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π² Π½Ρ‘ΠΌ нСльзя Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСняСмыС структуры, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π²-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π½Π΅ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π²Π°ΠΌΠΈ порядкС, Π° Π² Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ для Python.

Π’Π°ΠΊ ΠΊΠ°ΠΊ располоТСниС Π² мноТСствС опрСдСляСтся содСрТимым элСмСнта, поиск ΠΏΠΎ set ΠΈ ΠΏΡ€Π°Π²Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС. Выполняя ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ x in set_y, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ Π½ΡƒΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ hash-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΡ‚ x ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² set_y Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌΡƒ адрСсу. Никакого ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра элСмСнтов ΠΈ Π½ΡƒΠ΄Π½ΠΎΠ³ΠΎ сравнСния!

O-нотация Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ O(1): Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² мноТСства поиск Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Как Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ? Π—Π²ΡƒΡ‡ΠΈΡ‚ банально, Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ ΠΌΡƒΠ΄Ρ€ΠΈΡ‚ΡŒ ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ поиском.

        animals = ['cat', 'dog', 'bird', 'mouse', 'rat', 'elephant']

if 'dog' in animals: 
    # <дальнСйшиС вычислСния>

    

Как говорится Π² Π΄Π·Π΅Π½Π΅ Python, «простоС Π»ΡƒΡ‡ΡˆΠ΅ слоТного».

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π² Python

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, самый Π³Π»Π°Π²Π½Ρ‹ΠΉ совСт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стоит Π΄Π°Ρ‚ΡŒ спСциалистам-Π΄ΠΆΡƒΠ½ΠΈΠΎΡ€Π°ΠΌ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ свою ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Ρƒ Π² Python, – это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·ΡƒΠ±Ρ€ΠΈΡ‚ΡŒ основы, Π½ΠΎ ΠΈ Π·Π°Π³Π»ΡΠ΄Ρ‹Π²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΡŒ инструмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ‚Π΅ΠΌ самым Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠΌ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, я ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ:

  1. ΠŸΡ€ΠΎΡ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° сСбС Π΄Π·Π΅Π½ Python. Мало ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ «простоС Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ слоТноС»: Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ этот ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΈ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ сСбС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… трудностСй.
  2. Π—Ρ€ΠΈΡ‚ΡŒ Π² ΠΊΠΎΡ€Π΅Π½ΡŒ. ΠŸΡ€ΠΎ Ρ‚ΠΈΠΏΡ‹, классы, структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π½ΠΈΠΌΠΈ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΡƒΡ€ΠΎΠΊΠ°Ρ… ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π’Π°ΡˆΠ° Π·Π°Π΄Π°Ρ‡Π° – Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ «для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡΒ» ΠΈ Β«Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚Β», Π½ΠΎ ΠΈ Β«ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚Β».
  3. НС ΡΠΎΠ±Π»Π°Π·Π½ΡΡ‚ΡŒΡΡ фрилансом. Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡƒΡ‚ΠΈ Π²Π°ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ стоит ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² компаниях с высокой ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½ΠΎΠΉ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€ΠΎΠΉ. Π’Π°ΠΊ Π²Ρ‹ смоТСтС ΠΏΠ΅Ρ€Π΅Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ ΠΎΡ‚ людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΌΠ΅ΡŽΡ‚ ΠΈ Π»ΡŽΠ±ΡΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄, Π° Π½Π΅ Π½Π°Π±ΠΈΠ²Π°Ρ‚ΡŒ шишки ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.
Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° питониста». Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ курс ΠΏΠΎ Python ΠΎΡ‚ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ программиста».

ΠœΠ•Π ΠžΠŸΠ Π˜Π―Π’Π˜Π―

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π’ΠΠšΠΠΠ‘Π˜Π˜

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ вакансию

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•