Guido van Rossum
рдирдпрд╛рдБ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдзреЗрд░реИ рдЬрд╕реЛ Scala, Rust, рд░ F# рдорд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ "рдорд┐рд▓рд╛рди" рдЕрдкрд░реЗрдЯрд░ рдЬрд╕реНрддреИ рд╣реЛ, рдЬрд╕рд▓реЗ "рдХреЗрд╕" рдЕрдкрд░реЗрдЯрд░рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдмреНрд▓рдХрд╣рд░реВрдорд╛ рд╕реВрдЪреАрдмрджреНрдз рдврд╛рдБрдЪрд╛рд╣рд░реВрдХреЛ рд╕реВрдЪреАрд╕рдБрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдХреЛ рдирддрд┐рдЬрд╛рд▓рд╛рдИ рддреБрд▓рдирд╛ рдЧрд░реНрджрдЫред C, Java, рд░ JavaScript рдорд╛ рдЙрдкрд▓рдмреНрдз "рд╕реНрд╡рд┐рдЪ" рдЕрдкрд░реЗрдЯрд░рдХреЛ рд╡рд┐рдкрд░реАрдд, "рдорд┐рд▓рд╛рди"-рдЖрдзрд╛рд░рд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд▓реЗ рдзреЗрд░реИ рдзреЗрд░реИ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрджрдЫред
def http_error(рд╕реНрдерд┐рддрд┐):
рдорд┐рд▓рд╛рди рд╕реНрдерд┐рддрд┐:
рдХреЗрд╕ реж:
рдлрд┐рд░реНрддрд╛ "рдЦрд░рд╛рдм рдЕрдиреБрд░реЛрдз"
рдХреЗрд╕ 401|403|404:
рдлрд┐рд░реНрддрд╛ "рдЕрдиреБрдорддрд┐ рдЫреИрди"
рдХреЗрд╕ реж:
рдлрд┐рд░реНрддрд╛ "рдо рдЪрд┐рдпрд╛рдкрд╛рдиреА рд╣реБрдБ"
рдХреЗрд╕_:
рдлрд┐рд░реНрддрд╛ "рдЕрд░реВ рдХреЗрд╣рд┐"
рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдЕрд╡рд╕реНрдерд┐рдд рдорд╛рдирд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЪрд░рд╣рд░реВ рдмрд╛рдБрдзреНрди рд╡рд╕реНрддреБрд╣рд░реВ, рдЯрдкрд▓рд╣рд░реВ, рд╕реВрдЪреАрд╣рд░реВ, рд░ рд╕реНрд╡реИрдЪреНрдЫрд┐рдХ рдЕрдиреБрдХреНрд░рдорд╣рд░реВ рдЕрдирдкреНрдпрд╛рдХ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрд╕рд▓рд╛рдИ рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди, рдЯреЗрдореНрдкреНрд▓реЗрдЯрдорд╛ рдердк "рдпрджрд┐" рд╕рд░реНрддрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди, рдорд╛рд╕реНрдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ ("[x, y, *рдмрд╛рдХреА]"), рдХреБрдЮреНрдЬреА/рдорд╛рди рдореНрдпрд╛рдкрд┐рдЩрд╣рд░реВ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, {"рдмреНрдпрд╛рдиреНрдбрд╡рд┐рде": b, "рд╡рд┐рд▓рдореНрдмрддрд╛) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдЫред ": l} "рдмреНрдпрд╛рдиреНрдбрд╡рд┐рде" рд░ "рд▓реЗрдЯреЗрдиреНрд╕реА" рдорд╛рди рд░ рд╢рдмреНрджрдХреЛрд╢ рдирд┐рдХрд╛рд▓реНрди, рд╕рдмрдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВ рдирд┐рдХрд╛рд▓реНрдиреБрд╣реЛрд╕реН (":=" рдЕрдкрд░реЗрдЯрд░), рдЯреЗрдореНрдкреНрд▓реЗрдЯрдорд╛ рдирд╛рдорд┐рдд рд╕реНрдерд┐рд░рддрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдХрдХреНрд╖рд╛рд╣рд░реВрдорд╛, "__match__()" рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдорд┐рд▓реНрджреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред
рдбрд╛рдЯрд╛рдХреНрд▓рд╛рд╕рдмрд╛рдЯ рдбрд╛рдЯрд╛рдХреНрд▓рд╛рд╕ рдЖрдпрд╛рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН
@dataclass
рдХрдХреНрд╖рд╛ рдмрд┐рдиреНрджреБ:
x:int
y:int
def whereis (рдмрд┐рдиреНрджреБ):
рдорд┐рд▓рд╛рди рдмрд┐рдиреНрджреБ:
рдХреЗрд╕ рдмрд┐рдиреНрджреБ (реж, реж):
рдкреНрд░рд┐рдиреНрдЯ ("рдореВрд▓")
рдХреЗрд╕ рдмрд┐рдиреНрджреБ (0, y):
рдЫрд╛рдкреНрдиреБрд╣реЛрд╕реН(f"Y={y}")
рдХреЗрд╕ рдмрд┐рдиреНрджреБ(x, 0):
рдЫрд╛рдкреНрдиреБрд╣реЛрд╕реН(f"X={x}")
рдХреЗрд╕ рдмрд┐рдиреНрджреБ ():
рдЫрд╛рдкреНрдиреБрд╣реЛрд╕реН ("рдЕрдиреНрдп рдХрддреИ")
рдХреЗрд╕_:
рдЫрд╛рдкреНрдиреБрд╣реЛрд╕реН ("рдмрд┐рдиреНрджреБ рд╣реЛрдЗрди")
рдорд┐рд▓рд╛рди рдмрд┐рдиреНрджреБ:
рдХреЗрд╕ рдмрд┐рдиреНрджреБ(x, y) рдпрджрд┐ x == y:
рдЫрд╛рдкреНрдиреБрд╣реЛрд╕реН(f"Y=X рдорд╛ {x}")
рдХреЗрд╕ рдмрд┐рдиреНрджреБ(x, y):
рдЫрд╛рдкреНрдиреБрд╣реЛрд╕реН(f"рд╡рд┐рдХрд░реНрдгрдорд╛ рд╣реЛрдЗрди")
рд░рд╛рддреЛ, рд╣рд░рд┐рдпреЛ, рдиреАрд▓реЛ = реж, рез, реи
рдорд┐рд▓реНрдиреЗ рд░рдВрдЧ:
рдХреЗрд╕ .RED:
рдЫрд╛рдкреНрдиреБрд╣реЛрд╕реН ("рдо рд░рд╛рддреЛ рджреЗрдЦреНрдЫреБ!")
рдорд╛рдорд▓рд╛ред рд╣рд░рд┐рдпреЛ:
рдЫрд╛рдкреНрдиреБрд╣реЛрд╕реН ("рдШрд╛рдБрд╕ рд╣рд░рд┐рдпреЛ рдЫ")
рдХреЗрд╕ .BLU
E:
рдЫрд╛рдкреНрдиреБрд╣реЛрд╕реН("рдо рдирд┐рд▓реЛ рдорд╣рд╕реБрд╕ рдЧрд░реНрджреИрдЫреБ :(")
рд╕рдореАрдХреНрд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕реЗрдЯ рддрдпрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ
рд╕реНрд░реЛрдд: opennet.ru