рдЙрдиреНрдирдд рдкрд╛рдпрдерди рд╡рд┐рдХрд╛рд╕ рдкрд╛рдареНрдпрдХреНрд░рдо
рдЕрдзреНрдпрд╛рдп 9
>
рд╕реНрддрд░ 2
рдЙрджреНрджреЗрд╢реНрдп
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ (Regular Expressions) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдФрд░ рдЬреЛрдирд┐рдВрдЧ рдЖрд╡рдВрдЯрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВред
рдкрдбрд╝реЛрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рд▓рдпреЛрдВ рдореЗрдВ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдирдП рдХреГрд╖рд┐ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдФрд░ рдлрд╕рд▓реЛрдВ рддрдерд╛ рдкрд╢реБрдзрди рдХреА рджреЗрдЦрднрд╛рд▓ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЬреЛрдирд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖рдХрд░ рдЬрдм рдмрд╣реБрдд рдмрдбрд╝реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рд╣реЛред рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╣рдо 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 functions рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдиреНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЧреБрдгреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд╕реАрдХреНрд╡реЗрдВрд╕ рдХреА рдПрдХ рд▓рдВрдмреА рд╕реВрдЪреА рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
\B: рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреИрд░реЗрдХреНрдЯрд░реНрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╢рдмреНрдж рдХреА рд╢реБрд░реБрдЖрдд рдпрд╛ рдЕрдВрдд рдореЗрдВ рд╕реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред\D: рдРрд╕реЗ рдХреИрд░реЗрдХреНрдЯрд░реНрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рдЕрдВрдХреАрдп (0-9) рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
рдпрджрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕реАрдХреНрд╡реЗрдВрд╕ рдХреЗ рд╕рд╛рде рдПрдХ r рдЙрдкрд╕реНрдерд┐рдд рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдХрдЪреНрдЪреА рд╕реНрдЯреНрд░рд┐рдВрдЧ (raw string) рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИред
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╕реЛрдиреЗ рдХреЗ X рдорд╛рд░реНрдХ рдХреА рдУрд░ рдЪрд▓реЗрдВ рдФрд░ рдореЗрдореЛ рдХреЗ рд╕рд╛рде рдЯреЗрдмрд▓ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВ, read() рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрдореЛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕реВрдЪреА рдЕрднрд┐рд▓реЗрдЦ (manifest) рд╢рд╛рдорд┐рд▓ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдирд╛рдо рдореЗрдВ # рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЙрдирдХреЗ рдХрд░реНрдордЪрд╛рд░реА рдирдВрдмрд░ рдХреА рд╕реАрдорд╛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдирд╛рдореЛрдВ рд╡рд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯ manifest рдореЗрдВ рд╕реНрдЯреЛрд░ рдХреА рдЧрдИ рд╣реИред
рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо tags рд╣реИ рдФрд░ re.findall() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ manifest рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯ рдореЗрдВ рд╕рднреА # рдЦреЛрдЬреЗрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░: tags = re.findall("#", manifest) . рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо number рд╣реИ рдФрд░ len() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ tags рд╕реВрдЪреА рдореЗрдВ рдХрд┐рддрдиреЗ рдЖрдЗрдЯрдо рд╣реИрдВ рдпрд╣ рдЧрд┐рдиреЗрдВ, рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ manifest рдореЗрдВ рдХрд┐рддрдиреЗ рдХрд░реНрдордЪрд╛рд░реА рд╣реИрдВред speak() рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ number рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рд╕рд╛рде рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдШреЛрд╖рдгрд╛ рдХреА рдЬрд╛ рд╕рдХреЗ рдХрд┐ рд╕реВрдЪреА рдореЗрдВ рдХрд┐рддрдиреЗ рдирд╛рдо рд╣реИрдВред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдиреАрд▓реЗ рдХрд╛рд▓реАрди рдХреЗ рдкрд╛рд╕ рд╕реНрдерд┐рдд рд╣рд▓реНрдХреЗ X рдорд╛рд░реНрдХ рдХреА рдУрд░ рдЪрд▓реЗрдВ рдФрд░ рдбреЗрд╕реНрдХ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВ рдФрд░ read() рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирдП рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реЛрдЧреА рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдЙрдирдХреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкрдж рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдкреЗрд╢реЗ рдореЗрдВ рдирд╛рдореЛрдВ рдХрд╛ рдиреЛрдЯ рд░рдЦреЗрдВ рддрд╛рдХрд┐ рдЖрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рдпреБрдХреНрдд рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХреНрд░реЙрд╕ рд░реЗрдлрд░реЗрдВрд╕ рдХрд░ рд╕рдХреЗрдВред рдиреАрд▓реЗ рдХрд╛рд▓реАрди рдХреЗ рдКрдкрд░ X рдорд╛рд░реНрдХ рдХреА рдУрд░ рдЪрд▓реЗрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдиреМрдХрд░рд┐рдпреЛрдВ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ read() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрдмрд▓ рдПрдХ рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯ assignments рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдореЗрдВ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдирдП рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реИред рд╕реВрдЪреА рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдореЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП re.sub() рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдПрдХ рднрд╛рдЧ рдХреЛ рджреВрд╕рд░реЗ рднрд╛рдЧ рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдПрдХ рд╕рдВрдкрд╛рджрди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
assignments = re.sub("Billy Hodgins", "Carol Hopkins", assignments)
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдирд╛рдо "Billy Hodgins" рдХреЛ "Carol Hopkins" рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЫреЛрдбрд╝рдХрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕реНрдХреИрди рдХрд░реЗрдВ рдФрд░ рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдЕрдиреНрдп рдирд╛рдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рддрд╛рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдбреЗрдЯ рд╣реЛ рд╕рдХреЗред рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП assignments рдХреЗ рд╕рд╛рде write() рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЕрдм рдЬрдм рд╣рдордиреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦ рд▓реА рд╣реИ, рддреЛ рдлрд╕рд▓ рдХреЗ рдЦреЗрдд рдХреА рдЬреЛрдирд┐рдВрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд▓рд╛рд▓ рдХрд╛рд▓реАрди рдХреЗ рдКрдкрд░ рд╕реНрдерд┐рдд рдЧрд╣рд░реЗ 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() . рдПрдХ рдмрд╛рд░ рд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░, рдкрд╣рд▓реЗ рд╕реЗ рд▓рд┐рдЦрд┐рдд write() рдХреЗ рд╕рд╛рде vector рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЕрдм рд╣рдо рдЬреЛрдирд┐рдВрдЧ рдЖрдЗрдЯрдореЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдкрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рд╣рд░реЗ рдХрд╛рд▓реАрди рдХреЗ рдКрдкрд░ рд╕реНрдерд┐рдд рдЧрд╣рд░реЗ X рдорд╛рд░реНрдХ рдХреА рдУрд░ рдЪрд▓реЗрдВред рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо sectors рд╣реИ рдФрд░ re.split() рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЬреЛрдирд┐рдВрдЧ рд╕реЗрдХреНрдЯрд░реНрд╕ рдХреЛ рд╕реВрдЪреА рдореЗрдВ рд╕рдореЗрдХрд┐рдд рдХрд░реЗрдВред re.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() рдлрдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрддрд░ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡-рд▓рд┐рдЦрд┐рдд write() рдлрдВрдХреНрд╢рди рдореЗрдВ sector_a, sector_b, sector_c рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдбрд╛рд▓реЗрдВред