Guido van Rossum์€ Python์— ํŒจํ„ด ์ผ์น˜ ์—ฐ์‚ฐ์ž ์ถ”๊ฐ€๋ฅผ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ท€๋„ ๋ฐ˜ ๋กœ์„ฌ ๋„์ž… ๋œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒ€ํ†  ์ดˆ์•ˆ ๋ช…์„ธ์„œ Python์—์„œ ํŒจํ„ด ์ผ์น˜ ์—ฐ์‚ฐ์ž(์ผ์น˜ ๋ฐ ๋Œ€์†Œ๋ฌธ์ž)๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŒจํ„ด ์ผ์น˜ ์—ฐ์‚ฐ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ์ œ์•ˆ์ด ์ด๋ฏธ 2001๋…„๊ณผ 2006๋…„์— ๋ฐœํ‘œ๋˜์—ˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(pep-0275, pep-3103), ๊ทธ๋Ÿฌ๋‚˜ ์ผ์น˜ํ•˜๋Š” ์ฒด์ธ์„ ์ปดํŒŒ์ผํ•˜๊ธฐ ์œ„ํ•œ "if ... elif ... else" ๊ตฌ์„ฑ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๊ตฌํ˜„์€ Scala, Rust ๋ฐ F#์—์„œ ์ œ๊ณต๋˜๋Š” "์ผ์น˜" ์—ฐ์‚ฐ์ž์™€ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ์—ฐ์‚ฐ์ž๋Š” ์ง€์ •๋œ ํ‘œํ˜„์‹์˜ ๊ฒฐ๊ณผ๋ฅผ "case" ์—ฐ์‚ฐ์ž๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ธ”๋ก์— ๋‚˜์—ด๋œ ํŒจํ„ด ๋ชฉ๋ก๊ณผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. C, Java ๋ฐ JavaScript์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” "์Šค์œ„์น˜" ์—ฐ์‚ฐ์ž์™€ ๋‹ฌ๋ฆฌ "์ผ์น˜" ๊ธฐ๋ฐ˜ ํ‘œํ˜„์‹์€ ํ›จ์”ฌ ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ. ์ œ์•ˆ๋œ ์—ฐ์‚ฐ์ž๋Š” ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ , ์ž„์˜์˜ Python ๊ฐ์ฒด ๋น„๊ต ๋ฐ โ€‹โ€‹๋””๋ฒ„๊น…์„ ๋‹จ์ˆœํ™”ํ•˜๋ฉฐ, ํ™•์žฅ ๊ฐ€๋Šฅ์„ฑ ๋•๋ถ„์— ์ฝ”๋“œ์˜ ์‹ ๋ขฐ์„ฑ๋„ ๋†’์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ •์  ์œ ํ˜• ๊ฒ€์‚ฌ.

def http_error(์ƒํƒœ):
์ผ์น˜ ์ƒํƒœ:
400์˜ ๊ฒฝ์šฐ :
"์ž˜๋ชป๋œ ์š”์ฒญ"์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
์ผ€์ด์Šค 401|403|404:
"ํ—ˆ์šฉ๋˜์ง€ ์•Š์Œ" ๋ฐ˜ํ™˜
418์˜ ๊ฒฝ์šฐ :
"๋‚˜๋Š” ์ฐป์ฃผ์ „์ž์ž…๋‹ˆ๋‹ค"๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ๋ก€_:
"๋‹ค๋ฅธ ๊ฒƒ"์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐœ์ฒด, ํŠœํ”Œ, ๋ชฉ๋ก ๋ฐ ์ž„์˜ ์‹œํ€€์Šค์˜ ์••์ถ•์„ ํ’€์–ด ๊ธฐ์กด ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ๋ฐ”์ธ๋”ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘์ฒฉ๋œ ํ…œํ”Œ๋ฆฟ์„ ์ •์˜ํ•˜๊ณ , ํ…œํ”Œ๋ฆฟ์— ์ถ”๊ฐ€ "if" ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜๊ณ , ๋งˆ์Šคํฌ("[x, y, *rest]"), ํ‚ค/๊ฐ’ ๋งคํ•‘(์˜ˆ: {"bandwidth": b, "latency")์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โ€: l} "๋Œ€์—ญํญ" ๋ฐ "๋Œ€๊ธฐ ์‹œ๊ฐ„" ๊ฐ’๊ณผ ์‚ฌ์ „์„ ์ถ”์ถœํ•˜๊ณ , ํ•˜์œ„ ํ…œํ”Œ๋ฆฟ(":=" ์—ฐ์‚ฐ์ž)์„ ์ถ”์ถœํ•˜๊ณ , ํ…œํ”Œ๋ฆฟ์— ๋ช…๋ช…๋œ ์ƒ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค์—์„œ๋Š” "__match__()" ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ์น˜ ๋™์ž‘์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ํด๋ž˜์Šค์—์„œ ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค ๊ฐ€์ ธ์˜ค๊ธฐ

@๋ฐ์ดํ„ฐํด๋ž˜์Šค
์ˆ˜์—… ํฌ์ธํŠธ:
x:์ •์ˆ˜
y:int

def ์–ด๋””์—(์ ):
์ผ์น˜์ :
์‚ฌ๋ก€ ํฌ์ธํŠธ(0, 0):
print("์›์‚ฐ์ง€")
๊ฒฝ์šฐ ํฌ์ธํŠธ(0, y):
์ธ์‡„(f"Y={y}")
๊ฒฝ์šฐ ํฌ์ธํŠธ(x, 0):
์ธ์‡„(f"X={x}")
์ผ€์ด์Šค ํฌ์ธํŠธ():
print("๋‹ค๋ฅธ ๊ณณ")
์‚ฌ๋ก€_:
print("ํฌ์ธํŠธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.")

์ผ์น˜์ :
x == y์ธ ๊ฒฝ์šฐ Point(x, y):
print(f"Y=X at {x}")
์ผ€์ด์Šค ํฌ์ธํŠธ(x, y):
print(f"๋Œ€๊ฐ์„ ์— ์žˆ์ง€ ์•Š์Œ")

๋นจ๊ฐ„์ƒ‰, ๋…น์ƒ‰, ํŒŒ๋ž€์ƒ‰ = 0, 1, 2
์ƒ‰์ƒ ์ผ์น˜:
์ผ€์ด์Šค .RED:
print("๋นจ๊ฐ„์ƒ‰์ด ๋ณด์—ฌ์š”!")
์ผ€์ด์Šค .GREEN:
print("์ž”๋””๋Š” ์ดˆ๋ก์ƒ‰์ž…๋‹ˆ๋‹ค")
์ผ€์ด์Šค .BLU
E:
print("์šฐ์šธํ•œ ๊ธฐ๋ถ„์ด์—์š” :(")

๊ฒ€ํ† ๋ฅผ ์œ„ํ•ด ์„ธํŠธ๊ฐ€ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒจ์น˜ ์‹คํ—˜์ ์ธ ์ดํ–‰ ์ œ์•ˆ๋œ ์‚ฌ์–‘์ด์ง€๋งŒ ์ตœ์ข… ๋ฒ„์ „์€ ์•„์ง ๋…ผ์˜๋˜๊ณ ์žˆ๋Š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ œ๊ณต ๊ธฐ๋ณธ๊ฐ’์— ๋Œ€ํ•ด "case _:" ํ‘œํ˜„ ๋Œ€์‹  "else:" ๋˜๋Š” "default:" ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๋‹ค๋ฅธ ์ปจํ…์ŠคํŠธ์—์„œ๋Š” "_"๊ฐ€ ์ž„์‹œ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ƒˆ๋กœ์šด ํ‘œํ˜„์‹์„ "if ... elif ... else" ๊ตฌ๋ฌธ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์žˆ๋Š” ๋‚ด๋ถ€ ์กฐ์ง๋„ โ€‹โ€‹์˜์‹ฌ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋งค์šฐ ํฐ ๋น„๊ต ์ง‘ํ•ฉ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์›ํ•˜๋Š” ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€