Guido van Rossum เจจเฉ‡ Python เจตเจฟเฉฑเจš เจชเฉˆเจŸเจฐเจจ เจฎเฉˆเจšเจฟเฉฐเจ— เจ“เจชเจฐเฉ‡เจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฆเจพ เจชเฉเจฐเจธเจคเจพเจต เจ•เฉ€เจคเจพ

เจ—เจพเจˆเจกเฉ‹ เจตเฉˆเจจ เจฐเฉ‹เจธเจฎ เจชเฉ‡เจธเจผ เจ•เฉ€เจคเจพ เจญเจพเจˆเจšเจพเจฐเจ• เจตเจฟเจšเจพเจฐ เจฒเจˆ เจ–เจฐเฉœเจพ เจจเจฟเจฐเจงเจพเจฐเจจ เจชเจพเจˆเจฅเจจ เจตเจฟเฉฑเจš เจชเฉˆเจŸเจฐเจจ เจฎเฉˆเจšเจฟเฉฐเจ— เจ“เจชเจฐเฉ‡เจŸเจฐ (เจฎเฉˆเจš เจ…เจคเฉ‡ เจ•เฉ‡เจธ) เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆเฅค เจ‡เจน เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจฏเฉ‹เจ— เจนเฉˆ เจ•เจฟ เจชเฉˆเจŸเจฐเจจ เจฎเฉˆเจšเจฟเฉฐเจ— เจ“เจชเจฐเฉ‡เจŸเจฐ เจœเฉ‹เฉœเจจ เจฆเฉ‡ เจชเฉเจฐเจธเจคเจพเจต เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ 2001 เจ…เจคเฉ‡ 2006 เจตเจฟเฉฑเจš เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เฉ€เจคเฉ‡ เจ—เจ เจธเจจ (pep-0275, pep-3103), เจชเจฐ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเฉ€เจ†เจ‚ เจšเฉ‡เจจเจพเจ‚ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ "if ... elif ... else" เจจเจฟเจฐเจฎเจพเจฃ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจนเฉฑเจ• เจตเจฟเฉฑเจš เจฐเฉฑเจฆ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค

เจจเจตเจพเจ‚ เจฒเจพเจ—เฉ‚เจ•เจฐเจจ Scala, Rust, เจ…เจคเฉ‡ F# เจตเจฟเฉฑเจš เจฆเจฟเฉฑเจคเฉ‡ เจ—เจ "เจฎเฉˆเจš" เจ†เจชเจฐเฉ‡เจŸเจฐ เจฆเฉ‡ เจฌเจนเฉเจค เจธเจฎเจพเจจ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจ‡เฉฑเจ• เจ–เจพเจธ เจธเจฎเฉ€เจ•เจฐเจจ เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจ•เฉ‡เจธ-เจ…เจงเจพเจฐเจฟเจค เจฌเจฒเจพเจ•เจพเจ‚ เจตเจฟเฉฑเจš เจจเจฟเจฐเจงเจพเจฐเจค เจชเฉˆเจŸเจฐเจจเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจฆเฉ‡ เจตเจฟเจฐเฉเฉฑเจง เจ•เจฐเจฆเจพ เจนเฉˆเฅค C, Java, เจ…เจคเฉ‡ JavaScript เจตเจฟเฉฑเจš เจ‰เจชเจฒเจฌเจง "เจธเจตเจฟเฉฑเจš" เจ†เจชเจฐเฉ‡เจŸเจฐ เจฆเฉ‡ เจ‰เจฒเจŸ, "เจฎเฉˆเจš"-เจ…เจงเจพเจฐเจฟเจค เจธเจฎเฉ€เจ•เจฐเจจ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจตเจฟเจ†เจชเจ• เจ•เจพเจฐเจœเจธเจผเฉ€เจฒเจคเจพเจ‡เจน เจจเฉ‹เจŸ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ•เจฟ เจชเฉเจฐเจธเจคเจพเจตเจฟเจค เจ“เจชเจฐเฉ‡เจŸเจฐ เจ•เฉ‹เจก เจฆเฉ€ เจชเฉœเฉเจนเจจเจฏเฉ‹เจ—เจคเจพ เจตเจฟเฉฑเจš เจธเฉเจงเจพเจฐ เจ•เจฐเจจเจ—เฉ‡, เจฎเจจเจฎเจพเจจเฉ‡ เจชเจพเจˆเจฅเจจ เจตเจธเจคเฉ‚เจ†เจ‚ เจ…เจคเฉ‡ เจกเฉ€เจฌเฉฑเจ—เจฟเฉฐเจ— เจฆเฉ€ เจคเฉเจฒเจจเจพ เจจเฉ‚เฉฐ เจธเจฐเจฒ เจฌเจฃเจพเจ‰เจฃเจ—เฉ‡, เจ…เจคเฉ‡ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจนเฉ‹เจฃ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจฆเฉ‡ เจ•เจพเจฐเจจ เจ•เฉ‹เจก เจฆเฉ€ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจตเฉ€ เจตเจงเจพเจ‰เจฃเจ—เฉ‡เฅค เจธเจฅเจฟเจฐ เจ•เจฟเจธเจฎ เจฆเฉ€ เจœเจพเจ‚เจš.

def http_error(status):
เจฎเฉˆเจš เจธเจฅเจฟเจคเฉ€:
เจ•เฉ‡เจธ 400:
"เจฎเจพเฉœเฉ€ เจฌเฉ‡เจจเจคเฉ€" เจตเจพเจชเจธ เจ•เจฐเฉ‹
เจ•เฉ‡เจธ 401|403|404:
"เจฎเจจเจœเจผเฉ‚เจฐ เจจเจนเฉ€เจ‚" เจตเจพเจชเจธ เจ•เจฐเฉ‹
เจ•เฉ‡เจธ 418:
"เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจšเจพเจน เจฆเฉ€ เจฅเจพเจฒเฉ€ เจนเจพเจ‚" เจตเจพเจชเจธ เจ•เจฐเฉ‹
เจ•เฉ‡เจธ _:
"เจ•เฉเจ เจนเฉ‹เจฐ" เจตเจพเจชเจธ เจ•เจฐเฉ‹

เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจฎเฉŒเจœเฉ‚เจฆเจพ เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡ เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฌเฉฐเจจเฉเจนเจฃ เจฒเจˆ เจตเจธเจคเฉ‚เจ†เจ‚, เจŸเฉเจชเจฒเจพเจ‚, เจธเฉ‚เจšเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจฎเจจเจฎเจพเจจเฉ€ เจ•เฉเจฐเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจจเจชเฉˆเจ• เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆเฅค เจจเฉ‡เจธเจŸเจก เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจจเจพ, เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจตเจฟเฉฑเจš เจตเจพเจงเฉ‚ "เจœเฉ‡" เจธเจผเจฐเจคเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ, เจฎเจพเจธเจ• ("[x, y, *rest]") เจฒเจ—เจพเจ‰เจฃเจพ, เจฎเฉˆเจช เจ•เฉเฉฐเจœเฉ€/เจฎเฉเฉฑเจฒ เจœเฉ‹เฉœเฉ‡ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ, {"bandwidth": b, "latency": l} "bandwidth" เจ…เจคเฉ‡ "latency" เจฎเฉเฉฑเจฒเจพเจ‚ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจธเจผเจฌเจฆเจ•เฉ‹เจธเจผ เจจเฉ‚เฉฐ เจเจ•เจธเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฒเจˆ), เจธเจฌเจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸเจพเจ‚ (":=" เจ†เจชเจฐเฉ‡เจŸเจฐ) เจจเฉ‚เฉฐ เจเจ•เจธเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจเจพ, เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจตเจฟเฉฑเจš เจจเจพเจฎเจฟเจค เจธเจฅเจฟเจฐเจพเจ‚เจ•เจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆเฅค เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเฉ‡ เจตเจฟเจตเจนเจพเจฐ เจจเฉ‚เฉฐ "__match__()" เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เจฒเจพเจธเจพเจ‚ เจตเจฟเฉฑเจš เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจกเฉ‡เจŸเจพเจ•เจฒเจพเจธ เจคเฉ‹เจ‚ เจกเฉ‡เจŸเจพเจ•เจฒเจพเจธ เจ†เจฏเจพเจค เจ•เจฐเฉ‹

@เจกเจพเจŸเจพเจ•เจฒเจพเจธ
เจ•เจฒเจพเจธ เจชเฉเจ†เจ‡เฉฐเจŸ:
x: เจ‡เฉฐเจŸ
y: เจ‡เฉฐเจŸ

def เจœเจฟเฉฑเจฅเฉ‡ เจนเฉˆ (เจฌเจฟเฉฐเจฆเฉ‚):
เจฎเฉˆเจš เจชเฉเจ†เจ‡เฉฐเจŸ:
เจ•เฉ‡เจธ เจชเฉเจ†เจ‡เฉฐเจŸ(0, 0):
เจชเฉเจฐเจฟเฉฐเจŸ ("เจฎเฉ‚เจฒ")
เจ•เฉ‡เจธ เจชเฉเจ†เจ‡เฉฐเจŸ(0, y):
เจชเฉเจฐเจฟเฉฐเจŸ (f ยปY = {y} ยป)
เจ•เฉ‡เจธ เจชเฉเจ†เจ‡เฉฐเจŸ(x, 0):
เจชเฉเจฐเจฟเฉฐเจŸ (fยปX={x}ยป)
เจ•เฉ‡เจธ เจชเฉเจ†เจ‡เฉฐเจŸ():
เจชเฉเจฐเจฟเฉฐเจŸ ("เจ•เจฟเจคเฉ‡ เจนเฉ‹เจฐ")
เจ•เฉ‡เจธ _:
เจชเฉเจฐเจฟเฉฐเจŸ ("เจ•เฉ‹เจˆ เจฌเจฟเฉฐเจฆเฉ‚ เจจเจนเฉ€เจ‚")

เจฎเฉˆเจš เจชเฉเจ†เจ‡เฉฐเจŸ:
เจ•เฉ‡เจธ เจชเฉเจ†เจ‡เฉฐเจŸ(x, y) เจœเฉ‡เจ•เจฐ x == y:
เจชเฉเจฐเจฟเฉฐเจŸ เจ•เจฐเฉ‹ (fยปY=X เจคเฉ‡ {x}ยป)
เจ•เฉ‡เจธ เจชเฉเจ†เจ‡เฉฐเจŸ(x, y):
print(f"เจกเจพเจ‡เจ—เจจเจฒ 'เจคเฉ‡ เจจเจนเฉ€เจ‚")

เจฒเจพเจฒ, เจนเจฐเจพ, เจจเฉ€เจฒเจพ = 0, 1, 2
เจฐเฉฐเจ— เจฎเฉ‡เจฒ เจ•เจฐเฉ‹:
เจ•เฉ‡เจธ .เจฒเจพเจฒ:
เจชเฉเจฐเจฟเฉฐเจŸ ("เจฎเฉˆเจจเฉ‚เฉฐ เจฒเจพเจฒ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡ เจฐเจฟเจนเจพ เจนเฉˆ!")
เจ•เฉ‡เจธ .เจนเจฐเจพ:
เจชเฉเจฐเจฟเฉฐเจŸ ("เจ˜เจพเจน เจนเจฐเจพ เจนเฉˆ")
เจ•เฉ‡เจธ .เจจเฉ€เจฒเจพ
E:
print(โ€œเจฎเฉˆเจจเฉ‚เฉฐ เจ‰เจฆเจพเจธเฉ€ เจฎเจนเจฟเจธเฉ‚เจธ เจนเฉ‹ เจฐเจนเฉ€ เจนเฉˆ :(โ€œ)

เจธเจฎเฉ€เจ–เจฟเจ† เจฒเจˆ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเจพ เจ‡เฉฑเจ• เจธเฉˆเฉฑเจŸ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจชเฉˆเจš เจชเฉเจฐเจฏเฉ‹เจ—เจพเจคเจฎเจ• เจจเจพเจฒ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจชเฉเจฐเจธเจคเจพเจตเจฟเจค เจจเจฟเจฐเจงเจพเจฐเจจ, เจชเจฐ เจ…เฉฐเจคเจฟเจฎ เจธเฉฐเจธเจ•เจฐเจฃ เจ…เจœเฉ‡ เจตเฉ€ เจนเฉˆ เจšเจฐเจšเจพ เจ•เฉ€เจคเฉ€. เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เฉ€เจคเฉ€ เจกเจฟเจซเจพเจฒเจŸ เจฎเฉเฉฑเจฒ เจฒเจˆ "เจ•เฉ‡เจธ _:" เจธเจฎเฉ€เจ•เจฐเจจ เจฆเฉ€ เจฌเจœเจพเจ, "else:" เจœเจพเจ‚ "default:" เจ•เฉ€เจตเจฐเจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹, เจ•เจฟเจ‰เจ‚เจ•เจฟ "_" เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจธเฉฐเจฆเจฐเจญเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ…เจธเจฅเจพเจˆ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจธเฉฐเจ—เจ เจจ, "if...elif...else" เจจเจฟเจฐเจฎเจพเจฃเจพเจ‚ เจฒเจˆ เจตเจฐเจคเฉ‡ เจ—เจ เจฌเจพเจˆเจŸเจ•เฉ‹เจก เจตเจฟเฉฑเจš เจจเจตเฉ‡เจ‚ เจธเจฎเฉ€เจ•เจฐเจจเจพเจ‚ เจฆเจพ เจ…เจจเฉเจตเจพเจฆ เจ•เจฐเจจ 'เจคเฉ‡ เจ…เจงเจพเจฐเจค, เจธเจตเจพเจฒ เจตเฉ€ เจ‰เจ เจพเจ‰เจ‚เจฆเจพ เจนเฉˆ, เจœเฉ‹ เจคเฉเจฒเจจเจพเจตเจพเจ‚ เจฆเฉ‡ เจฌเจนเฉเจค เจตเฉฑเจกเฉ‡ เจธเฉˆเฉฑเจŸเจพเจ‚ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจชเฉเจฐเจฆเจพเจจ เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เจพเฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹