Guido рд╡реНрд╣реЕрди Rossum
рдирд╡реАрди рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реНрдХрд╛рд▓рд╛, рд░рд╕реНрдЯ рдЖрдгрд┐ F# рдордзреНрдпреЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реНрдпрд╛ "рдореЕрдЪ" рдСрдкрд░реЗрдЯрд░рд╕рд╛рд░рдЦреА рдЖрд╣реЗ, рдЬреА "рдХреЗрд╕" рдСрдкрд░реЗрдЯрд░рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдмреНрд▓реЙрдХреНрд╕рдордзреНрдпреЗ рд╕реВрдЪреАрдмрджреНрдз рдХреЗрд▓реЗрд▓реНрдпрд╛ рдирдореБрдиреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реВрдЪреАрд╕рд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдорд╛рдЪреА рддреБрд▓рдирд╛ рдХрд░рддреЗ. C, Java рдЖрдгрд┐ JavaScript рдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реНрдпрд╛ "рд╕реНрд╡рд┐рдЪ" рдСрдкрд░реЗрдЯрд░рдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, "рдЬреБрд│рдгреНрдпрд╛"-рдЖрдзрд╛рд░рд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдмрд░реЗрдЪ рдХрд╛рд╣реА рджреЗрддрд╛рдд
def http_error(рд╕реНрдерд┐рддреА):
рдЬреБрд│рдгреА рд╕реНрдерд┐рддреА:
рдХреЗрд╕ 400:
"рдЦрд░рд╛рдм рд╡рд┐рдирдВрддреА" рдкрд░рдд рдХрд░рд╛
рдХреЗрд╕ 401|403|404:
"рдкрд░рд╡рд╛рдирдЧреА рдирд╛рд╣реА" рдкрд░рдд рдХрд░рд╛
рдХреЗрд╕ 418:
рдкрд░рдд "рдореА рдПрдХ рдЪрд╣рд╛рдЪреА рднрд╛рдВрдбреА рдЖрд╣реЗ"
рдХреЗрд╕_:
"рдХрд╛рд╣реАрддрд░реА" рдкрд░рдд рдХрд░рд╛
рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡рд┐рджреНрдпрдорд╛рди рдореВрд▓реНрдпрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдмрд╛рдВрдзрдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, рдЯреНрдпреВрдкрд▓реНрд╕, рд╕реВрдЪреА рдЖрдгрд┐ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдЕрдиреБрдХреНрд░рдо рдЕрдирдкреЕрдХ рдХрд░реВ рд╢рдХрддрд╛. рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯреНрд╕ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЯреЗрдореНрдкреНрд▓реЗрдЯрдордзреНрдпреЗ рдЕрддрд┐рд░рд┐рдХреНрдд тАЬрдЬрд░тАЭ рдЕрдЯреА рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА, рдорд╛рд╕реНрдХ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА (тАЬ[x, y, *rest]тАЭ), рдХреА/рд╡реНрд╣реЕрд▓реНрдпреВ рдореЕрдкрд┐рдВрдЧ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, {тАЬрдмрдБрдбрд╡рд┐рдбреНрдетАЭ: b, тАЬрд▓реЗрдЯрдиреНрд╕реА) рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗ тАЭ: l} "рдмрдБрдбрд╡рд┐рдбреНрде" рдЖрдгрд┐ "рд▓реЗрдЯрдиреНрд╕реА" рдореВрд▓реНрдпреЗ рдЖрдгрд┐ рд╢рдмреНрджрдХреЛрд╢ рдХрд╛рдврдгреНрдпрд╛рд╕рд╛рдареА, рд╕рдмрдЯреЗрдореНрдкреНрд▓реЗрдЯреНрд╕ рдХрд╛рдврд╛ (":=" рдСрдкрд░реЗрдЯрд░), рдЯреЗрдореНрдкрд▓реЗрдЯрдордзреНрдпреЗ рдирд╛рдорд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рд╡рд╛рдкрд░рд╛. рд╡рд░реНрдЧрд╛рдВрдордзреНрдпреЗ, тАЬ__match__()тАЭ рдкрджреНрдзрдд рд╡рд╛рдкрд░реВрди рдЬреБрд│рдгрд╛рд░реЗ рд╡рд░реНрддрди рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ.
рдбреЗрдЯрд╛рдХреНрд▓рд╛рд╕рдордзреВрди рдбреЗрдЯрд╛рдХреНрд▓рд╛рд╕ рдЖрдпрд╛рдд рдХрд░рд╛
@dataclass
рд╡рд░реНрдЧ рдмрд┐рдВрджреВ:
x:int
y:int
def whereis(рдмрд┐рдВрджреВ):
рдЬреБрд│рдгреА рдмрд┐рдВрджреВ:
рдХреЗрд╕ рдкреЙрдЗрдВрдЯ(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:
рдкреНрд░рд┐рдВрдЯ ("рдорд▓рд╛ рдмреНрд▓реВрдЬ рд╡рд╛рдЯрдд рдЖрд╣реЗ :(")
рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдирд╛рд╕рд╛рдареА рд╕рдВрдЪ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ
рд╕реНрддреНрд░реЛрдд: opennet.ru