ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΊΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° Python
ΠΠ»Π°Π²Π° 9
>
Π£ΡΠΎΠ²Π΅Π½Ρ 2
Π¦Π΅Π»Ρ
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π·ΠΎΠ½, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
Π ΡΠΎΡΠ΅Π΄Π½ΠΈΡ
ΠΎΡΠΈΡΠ°Ρ
ΠΈΠΌΠ΅Π΅ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ. Π Π΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°Ρ
, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
ΡΠ°Π±ΠΎΡΡ Π½Π° Π½ΠΎΠ²ΠΎΠΉ ΡΠ΅Π»ΡΡΠΊΠΎΡ
ΠΎΠ·ΡΠΉΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π·Π΅ΠΌΠ»Π΅, ΠΈ ΠΎ Π·ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ°ΡΡΠΊΠΎΠ², Π³Π΄Π΅ Π±ΡΠ΄ΡΡ Π²ΡΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ ΡΠ΅Π»ΡΡΠΊΠΎΡ
ΠΎΠ·ΡΠΉΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΡΠ»ΡΡΡΡΡ ΠΈ ΡΠ°Π·Π²ΠΎΠ΄ΠΈΡΡΡΡ ΡΠΊΠΎΡ. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΡΠΌΠ°ΠΌΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ
Π΄Π°Π½Π½ΡΡ
. ΠΠ»Ρ ΡΡΠΈΡ
ΡΠ΅Π»Π΅ΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ re, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡ Regular Expressions, ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Regex. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΡΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ import re. ΠΠ»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
re.findall(): ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° (2) Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°: ΠΏΠ΅ΡΠ²ΡΠΉ β ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΈΡΠ΅ΡΠ΅ Π² ΡΡΡΠΎΠΊΠ΅, Π²ΡΠΎΡΠΎΠΉ β ΡΡΡΠΎΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠΈΡΠΊ.re.sub(): ΠΠ°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ. ΠΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΠΈ (3) Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°: ΠΏΠ΅ΡΠ²ΡΠΉ β ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ, Π²ΡΠΎΡΠΎΠΉ β Π½Π° ΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ, ΠΈ ΡΡΠ΅ΡΠΈΠΉ β ΡΡΡΠΎΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠΈΡΠΊ.re.search(): ΠΠ°Ρ ΠΎΠ΄ΠΈΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ Π² ΡΡΡΠΎΠΊΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° (2) Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°: ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΈΡΠ΅ΡΠ΅, ΠΈ ΡΡΡΠΎΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠΈΡΠΊ. Π‘ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,span(), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²Π΅ΠΊΡΠΎΡ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌΠΈ Π½Π°ΡΠ°Π»Π° ΠΈ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠ΅ΠΊΡΡΠ΅.re.split(): Π Π°Π·Π±ΠΈΠ²Π°Π΅Ρ ΡΡΡΠΎΠΊΡ Π½Π° ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°ΠΌ. ΠΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° (2) Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°: ΠΏΠ΅ΡΠ²ΡΠΉ β ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ, Π²ΡΠΎΡΠΎΠΉ β ΡΡΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΡ.re.match(): ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ ΡΡΡΠΎΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΠΊΠΈ. Π Π°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΡΠΏΡΠΎΡΡΠ½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈre.search(), Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π»ΠΈ ΡΡΡΠΎΠΊΠ° Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°.
ΠΠΎΠ΄ΡΠ»Ρ re ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΊΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ re ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΡ
Π²Π°ΡΡΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΡΠΎΠΊ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ
ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ, Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
\B: ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π»ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΡΡΡΠΎΠΊΠ΅, Π½ΠΎ Π½Π΅ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ»ΠΎΠ²Π°.\D: ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΡΡΠ°ΠΌΠΈ ΠΎΡ 0 Π΄ΠΎ 9
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» r, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° "ΡΡΡΠΎΠΉ" ΡΡΡΠΎΠΊΠΈ.
ΠΠ°ΡΠ½ΠΈΡΠ΅ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π°ΠΏΡΠ°Π²Π»ΡΠΉΡΠ΅ΡΡ ΠΊ Π·ΠΎΠ»ΠΎΡΠΎΠΌΡ X ΠΈ ΠΏΠΎΠ²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ ΡΡΠΎΠ»Ρ Ρ Π·Π°ΠΏΠΈΡΠΊΠΎΠΉ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ read(), ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π°ΠΏΠΈΡΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ Π²ΡΠ΅Ρ
ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ². ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ #, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅Ρ ΠΈΡ
Π½ΠΎΠΌΠ΅Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°. Π‘ΡΡΠΎΠΊΠ° Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ°ΠΊΠΆΠ΅ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ manifest.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ tags ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ Π² Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ re.findall(), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π²ΡΠ΅Ρ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² # Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ΅ manifest, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: tags = re.findall("#", manifest). Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ number ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ len() Ρ ΡΠΏΠΈΡΠΊΠΎΠΌ tags, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅. ΠΡΠΎ Π΄Π°ΡΡ Π½Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ speak() Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ number, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡΠ½ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅.
ΠΠ°ΡΠ΅ΠΌ Π½Π°ΠΏΡΠ°Π²Π»ΡΠΉΡΠ΅ΡΡ ΠΊ ΡΠ²Π΅ΡΠ»ΠΎΠΌΡ X ΡΡΠ΄ΠΎΠΌ Ρ ΡΠΈΠ½ΠΈΠΌ ΠΊΠΎΠ²ΡΠΎΠΌ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ ΡΡΠΎΠ»Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ read(). ΠΠ΄Π΅ΡΡ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ Π½ΠΎΠ²ΡΡ
ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡΠΌΠΈ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠΌΠ΅Π½Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Π·Π°ΡΠ΅ΠΌ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΡ
Ρ ΡΠ΅ΠΊΡΡΠΈΠΌΠΈ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ. ΠΠ°Π»Π΅Π΅ ΠΏΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊ X Π½Π° ΡΠΈΠ½Π΅ΠΌ ΠΊΠΎΠ²ΡΠ΅ ΠΈ ΡΠ½ΠΎΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ read(), ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π’Π΅ΠΊΡΡΠΈΠΉ ΡΡΠ°Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ΅ assignments. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π½ΠΎΠ²ΡΡ
ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ². ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ re.sub(), ΡΡΠΎΠ±Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄Π½Ρ ΡΠ°ΡΡΡ ΡΡΡΠΎΠΊΠΈ Π½Π° Π΄ΡΡΠ³ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
assignments = re.sub("Billy Hodgins", "Carol Hopkins", assignments)
ΠΠΌΡ "Billy Hodgins" Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° "Carol Hopkins" Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅. ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΡΠΊΠ°Π½ΠΈΡΡΠΉΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΠΎ ΠΈ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΈΠΌΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ write() Ρ assignments, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΠ»ΠΈΡΡ ΠΎ ΡΠΏΠΈΡΠΊΠ°Ρ
ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ², ΠΏΠΎΡΠ° ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π·ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠΌΡ. ΠΠ°ΠΏΡΠ°Π²Π»ΡΠΉΡΠ΅ΡΡ ΠΊ ΡΡΠΌΠ½ΠΎΠΌΡ X Π½Π° ΠΊΡΠ°ΡΠ½ΠΎΠΌ ΠΊΠΎΠ²ΡΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ read(). ΠΡΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΎΠ±Π·ΠΎΡ Π·ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ zones.
ΠΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΠΈΡΠ΅ ΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 6210 Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎΡ ΡΠ΅ΠΊΡΠΎΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ re.search(), ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠ΅ΠΊΡΠΎΡΠ° Π² Π·ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ index ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ Π² Π½Π΅ΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΡΠ½Π½ΡΠΉ ΠΏΠΎΠΈΡΠΊΠΎΠΌ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ: r"6210\B". ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ r ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ, 6210 β ΡΡΠΎ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅ΠΊΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠ΅ΠΌ, Π° \B β ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΠΎΠΈΡΠΊΠ°. ΠΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: index = re.search(r"6210\B", zones).
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° index ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΠΈΡΠΊΠ°, ΠΏΠΎΡΠ° ΠΈΠ·Π²Π»Π΅ΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ span(). Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ vector ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ Π² Π½Π΅ΠΉ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎΠΈΡΠΊΠ°, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: vector = index.span(). ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ vector Ρ Π·Π°ΡΠ°Π½Π΅Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ write().
ΠΠ°Π»Π΅Π΅ ΠΌΡ Π·Π°ΠΉΠΌΡΠΌΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π·ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠ°Π²Π»ΡΠΉΡΠ΅ΡΡ ΠΊ ΡΡΠΌΠ½ΠΎΠΌΡ X Π½Π° Π·Π΅Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ²ΡΠ΅. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ sectors ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ re.split() Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π·ΠΎΠ½ Π·ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΈΡΠΎΠΊ. Π ΡΡΠ½ΠΊΡΠΈΠΈ split ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ "\D", ΡΡΠΎΠ±Ρ ΠΈΠ·Π²Π»Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ»Π° ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ zones. ΠΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ list comprehension, ΡΡΠΎΠ±Ρ ΡΠ±ΡΠ°ΡΡ ΠΏΡΡΡΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ len() Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ°Π»Ρ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΡΠ΅ΠΊΡΠΎΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
sectors = re.split("\D", zones) sectors = [x for x in sectors if len(x) > 3]
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ zones Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ write(), ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π²ΡΠ΅ ΡΠ΅ΠΊΡΠΎΡΠ° Π·ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΠΏΡΠ°Π²Π»ΡΠΉΡΠ΅ΡΡ ΠΊ ΡΠ²Π΅ΡΠ»ΠΎΠΌΡ X ΡΡΠ΄ΠΎΠΌ Ρ ΡΠΈΠΎΠ»Π΅ΡΠΎΠ²ΡΠΌ ΠΊΠΎΠ²ΡΠΎΠΌ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΌΡ ΡΠΊΠ°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ read(), ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅ΠΊΡΠΎΡΠ° Π² Π·ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅Π»ΡΡΠΊΠΎΡ
ΠΎΠ·ΡΠΉΡΡΠ²Π΅Π½Π½ΡΡ
ΡΠ³ΠΎΠ΄ΠΈΠΉ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΠΊΡΠΎΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π»ΠΈ ΠΎΠ½ΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅ Π·ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΠΏΡΠ°Π²Π»ΡΠΉΡΠ΅ΡΡ ΠΊ ΡΡΠΌΠ½ΠΎΠΌΡ X Π½Π° ΡΠΈΠΎΠ»Π΅ΡΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ²ΡΠ΅. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠΈ (3) ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΡ
ΡΠ΅ΠΊΡΠΎΡΠ° Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ: sector_a, sector_b, sector_c, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°Ρ
ΠΊΠΎΠ΄Π°. ΠΡΡΠ°Π²ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΏΡΠΎΡΠΈΡΠ°Π»ΠΈ Ρ ΡΠ²Π΅ΡΠ»ΠΎΠ³ΠΎ X. ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ list comprehension, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΡΠΏΠΈΡΠΊΠ° sectors ΠΈ ΡΠΈΠ»ΡΡΡΡΠ΅Ρ ΠΈΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ re.match(). ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ sector_a, sector_b, sector_c ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ ΠΈΡ
Π² Π·Π°ΡΠ°Π½Π΅Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ write(), ΡΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΡΠΎΠ²Π΅Π½Ρ.