ΠΡΠΈΠ²Π΅Ρ! ΠΠ΅Π½Ρ Π·ΠΎΠ²ΡΡ ΠΠ°ΡΠ°, Ρ ΡΠΆΠ΅ ΡΠ΅ΡΡΡ Π»Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π½Π° 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
ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ.
- ΠΠ»Π°ΡΡ
bool
, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΉ Π² Python 2.3, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊ ΠΊΠ»Π°ΡΡΠ°int
. Π’ΠΎ Π΅ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡTrue
ΠΈFalse
β Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π΄Π²Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ°bool
, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΎΠ±ΠΎΠΉ1
ΠΈ0
. Π ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ__repr__
ΠΈ__str__
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, Π½ΠΎ Β«ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌΒ» ΠΎΠ½ΠΈ ΠΎΡΡΠ°ΡΡΡΡ ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠΈΡΡΠ°ΠΌΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠ°Π²Π½ΠΈΠ²True
ΠΈ ΡΠΈΡΠ»ΠΎ. ΠΠ½Π°Ρ ΡΡΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ boolean-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ . ΠΠΎ Ρ ΡΠ°ΠΊ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ: ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² Π΄Π·Π΅Π½Π΅ Python (Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΅Π³ΠΎ, Π²Π²Π΅Π΄Ρ Π² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡimport this
), Β«ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Β». ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ boolean ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π² PEP-0285. - Π’Π°ΠΊΠΆΠ΅ Π²Π½ΡΡΡΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ 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).
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, β ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π·ΡΠ±ΡΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Ρ, Π½ΠΎ ΠΈ Π·Π°Π³Π»ΡΠ΄ΡΠ²Π°ΡΡ Π²Π½ΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ.
Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠΌ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Ρ ΡΠΎΠ²Π΅ΡΡΡ:
- ΠΡΠΎΡΡΠ²ΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π° ΡΠ΅Π±Π΅ Π΄Π·Π΅Π½ Python. ΠΠ°Π»ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Β«ΠΏΡΠΎΡΡΠΎΠ΅ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅Β»: Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΈ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΅Π±Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ.
- ΠΡΠΈΡΡ Π² ΠΊΠΎΡΠ΅Π½Ρ. ΠΡΠΎ ΡΠΈΠΏΡ, ΠΊΠ»Π°ΡΡΡ, ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π½ΠΈΠΌΠΈ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠΎΠΊΠ°Ρ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ° β Π²ΡΡΡΠ½ΠΈΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Β«Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡΒ» ΠΈ Β«ΡΡΠΎ ΠΌΠΎΠ³ΡΡΒ», Π½ΠΎ ΠΈ Β«ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡΒ».
- ΠΠ΅ ΡΠΎΠ±Π»Π°Π·Π½ΡΡΡΡΡ ΡΡΠΈΠ»Π°Π½ΡΠΎΠΌ. Π Π½Π°ΡΠ°Π»Π΅ ΠΏΡΡΠΈ Π²Π°ΠΌ ΡΠΎΡΠ½ΠΎ ΡΡΠΎΠΈΡ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎΠΉ ΠΊΡΠ»ΡΡΡΡΠΎΠΉ. Π’Π°ΠΊ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π½ΠΈΠΌΠ°ΡΡ ΠΎΠΏΡΡ ΠΎΡ Π»ΡΠ΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΌΠ΅ΡΡ ΠΈ Π»ΡΠ±ΡΡ ΠΏΠΈΡΠ°ΡΡ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΊΠΎΠ΄, Π° Π½Π΅ Π½Π°Π±ΠΈΠ²Π°ΡΡ ΡΠΈΡΠΊΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ