рдЧреБрдЗрдбреЛ рд╡реИрди рд░реЛрд╕реБрдо рдиреЗ рдкрд╛рдпрдерди рдореЗрдВ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦрд╛

рдЧреБрдЗрдбреЛ рд╡реИрди рд░реЛрд╕реБрдо рдкреНрд░рд╕реНрддреБрдд рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдорд╕реМрджрд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдкрд╛рдпрдерди рдореЗрдВ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рдСрдкрд░реЗрдЯрд░реЛрдВ (рдореИрдЪ рдФрд░ рдХреЗрд╕) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд╣рд▓реЗ рд╣реА 2001 рдФрд░ 2006 рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВ (рдкреАрдИрдкреА-0275, рдкреАрдИрдкреА-3103), рд▓реЗрдХрд┐рди рдорд┐рд▓рд╛рди рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдЕрдЧрд░ ... рдПрд▓рд┐рдл ... рдЕрдиреНрдпрдерд╛" рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдирдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реНрдХрд╛рд▓рд╛, рд░рд╕реНрдЯ рдФрд░ рдПрдл# рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП "рдореИрдЪ" рдСрдкрд░реЗрдЯрд░ рдХреА рддрд░рд╣ рд╣реИ, рдЬреЛ "рдХреЗрд╕" рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдкреИрдЯрд░реНрди рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред рд╕реА, рдЬрд╛рд╡рд╛ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрд▓рдмреНрдз "рд╕реНрд╡рд┐рдЪ" рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╡рд┐рдкрд░реАрдд, "рдореИрдЪ"-рдЖрдзрд╛рд░рд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдмрд╣реБрдд рдХреБрдЫ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ рд╡реНрдпрд╛рдкрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛. рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдСрдкрд░реЗрдЯрд░ рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдПрдВрдЧреЗ, рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдХрд╛рд░рдг рдХреЛрдб рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рднреА рдмрдврд╝рд╛рдПрдВрдЧреЗред рд╕реНрдереИрддрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ.

def http_error(рд╕реНрдерд┐рддрд┐):
рдореИрдЪ рдХреА рд╕реНрдерд┐рддрд┐:
рдорд╛рдорд▓реЗ 400:
рд╡рд╛рдкрд╕реА "рдЧрд▓рдд рдЕрдиреБрд░реЛрдз"
рдХреЗрд╕ 401|403|404:
рд╡рд╛рдкрд╕реА "рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ"
рдорд╛рдорд▓реЗ 418:
рд╡рд╛рдкрд╕реА "рдореИрдВ рдПрдХ рдЪрд╛рдпрджрд╛рдиреА рд╣реВрдБ"
рдорд╛рдорд▓рд╛_:
рд╡рд╛рдкрд╕реА "рдХреБрдЫ рдФрд░"

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдореМрдЬреВрджрд╛ рдорд╛рдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдмрд╛рдЗрдВрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, рдЯреБрдкрд▓реНрд╕, рд╕реВрдЪрд┐рдпреЛрдВ рдФрд░ рдордирдорд╛рдиреЗ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЛ рдЕрдирдкреИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд "if" рд╢рд░реНрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ, рдорд╛рд╕реНрдХ ("[x, y, *rest]"), рдХреБрдВрдЬреА/рдореВрд▓реНрдп рдореИрдкрд┐рдВрдЧ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, {"рдмреИрдВрдбрд╡рд┐рдбреНрде": рдмреА, "рд╡рд┐рд▓рдВрдмрддрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ тАЭ: l}"рдмреИрдВрдбрд╡рд┐рдбреНрде" рдФрд░ "рд╡рд┐рд▓рдВрдмрддрд╛" рдорд╛рди рдФрд░ рд╢рдмреНрджрдХреЛрд╢ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП), рд╕рдмрдЯреЗрдореНрдкреНрд▓реЗрдЯреНрд╕ рдирд┐рдХрд╛рд▓реЗрдВ (":=" рдСрдкрд░реЗрдЯрд░), рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдирд╛рдорд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ, "__match__()" рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд┐рд▓рд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

рдбреЗрдЯрд╛рдХреНрд▓рд╛рд╕ рд╕реЗ рдбреЗрдЯрд╛рдХреНрд▓рд╛рд╕ рдЖрдпрд╛рдд рдХрд░реЗрдВ

@рдбреЗрдЯрд╛рдХреНрд▓рд╛рд╕
рдХрдХреНрд╖рд╛ рдмрд┐рдВрджреБ:
рдПрдХреНрд╕:рдЗрдВрдЯ
y:int

def рдХрд╣рд╛рдБ рд╣реИ(рдмрд┐рдВрджреБ):
рдореИрдЪ рдкреЙрдЗрдВрдЯ:
рдХреЗрд╕ рдкреЙрдЗрдВрдЯ(0, 0):
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ ("рдЙрддреНрдкрддреНрддрд┐")
рдХреЗрд╕ рдкреЙрдЗрдВрдЯ(0, y):
рдкреНрд░рд┐рдВрдЯ(f"Y={y}")
рдХреЗрд╕ рдкреЙрдЗрдВрдЯ(x, 0):
рдкреНрд░рд┐рдВрдЯ(f"X={x}")
рдХреЗрд╕ рдкреНрд╡рд╛рдЗрдВрдЯ():
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ ("рдХрд╣реАрдВ рдФрд░")
рдорд╛рдорд▓рд╛_:
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ ("рдХреЛрдИ рдмрд┐рдВрджреБ рдирд╣реАрдВ")

рдореИрдЪ рдкреЙрдЗрдВрдЯ:
рдХреЗрд╕ рдкреЙрдЗрдВрдЯ(x, y) рдпрджрд┐ x == y:
рдкреНрд░рд┐рдВрдЯ(f"Y=X at {x}")
рдХреЗрд╕ рдкреЙрдЗрдВрдЯ(x, y):
рдкреНрд░рд┐рдВрдЯ(f"рд╡рд┐рдХрд░реНрдг рдкрд░ рдирд╣реАрдВ")

рд▓рд╛рд▓, рд╣рд░рд╛, рдиреАрд▓рд╛ = 0, 1, 2
рд░рдВрдЧ рдорд┐рд▓рд╛рдУ:
рдорд╛рдорд▓рд╛ .рд▓рд╛рд▓:
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ ("рдореБрдЭреЗ рд▓рд╛рд▓ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ!")
рдорд╛рдорд▓рд╛ .рд╣рд░рд╛:
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ ("рдШрд╛рд╕ рд╣рд░реА рд╣реИ")
рдорд╛рдорд▓рд╛ .BLU
E:
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ ("рдореБрдЭреЗ рдЙрджрд╛рд╕реА рдорд╣рд╕реВрд╕ рд╣реЛ рд░рд╣реА рд╣реИ :(")

рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдЯ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдкреИрдЪ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛, рд▓реЗрдХрд┐рди рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдЕрднреА рдмрд╛рдХреА рд╣реИ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреА рдкреЗрд╢рдХрд╢ рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЗ рд▓рд┐рдП рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "рдХреЗрд╕ _:" рдХреЗ рдмрдЬрд╛рдп, рдХреАрд╡рд░реНрдб "рдЕрдиреНрдп:" рдпрд╛ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ:" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ "_" рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдВрддрд░рд┐рдХ рд╕рдВрдЧрдарди рднреА рд╕рдВрджрд┐рдЧреНрдз рд╣реИ, рдЬреЛ "if ... elif ... else" рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдорд╛рди рдмрд╛рдЗрдЯрдХреЛрдб рдореЗрдВ рдирдП рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреЛ рддреБрд▓рдирд╛ рдХреЗ рдмрд╣реБрдд рдмрдбрд╝реЗ рд╕реЗрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ