10๊ฐ์ ํ์ด์ฌ ํ: ๋น์ ์ด ์์ง ๋ชปํ๋ ๊ฒ๋ค ๐ก๐
์นดํ ๊ณ ๋ฆฌ
ํ๋ก๊ทธ๋๋ฐ/์ํํธ์จ์ด ๊ฐ๋ฐ
์๋ธ์นดํ ๊ณ ๋ฆฌ
๊ฐ๋ฐ ํด
๋์์
- ์ด๋ณด์ ๋ฐ ์ค๊ธ Python ๊ฐ๋ฐ์
- ๋์ด๋: ์ค๊ฐ ์์ค์ ์ค๋ฌด ํ, ์์ฐ์ฑ ํฅ์์ ์ด์
ํต์ฌ ์์ฝ
- Walrus ์ฐ์ฐ์
:=
๋ก ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฃจํ์์ ๋ณ์ ํ ๋น์ ๊ฐ๊ฒฐํ๊ฒ ์ฒ๋ฆฌ ๊ฐ๋ฅ (Python 3.8+) - ๋ฆฌ์คํธ/๋์ ๋๋ฆฌ ์ปดํ๋ฆฌํจ์ ์ ์ฌ์ฉํด ์กฐ๊ฑด ์ ์ฉ๊ณผ ๋ฐ์ดํฐ ๋ณํ์ ํ ์ค๋ก ์ฒ๋ฆฌ
- ๋ค์ค ํ ๋น(
a, b = b, a
)๊ณผ*
์ฐ์ฐ์๋ฅผ ํ์ฉํ ์ ์ฐํ ๋ณ์ ํจํน/์ธํจํน
์น์ ๋ณ ์ธ๋ถ ์์ฝ
1. Walrus ์ฐ์ฐ์ `:=`
if (n := len("Hello")) > 3
์ฒ๋ผ ์กฐ๊ฑด๋ฌธ ๋ด๋ถ์์ ๋ณ์ ํ ๋น ๊ฐ๋ฅ- ๋ฃจํ์์
while (n := len(input())) > 0
์ฒ๋ผ ๋ฆฌ์์ค ์ ์ฝ ๊ฐ๋ฅ - Python 3.8 ์ด์์์ ์ฌ์ฉ ๊ฐ๋ฅ
2. ์กฐ๊ฑด์์ ํฌํจํ ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์
squares = [x*x for x in range(10) if x % 2 == 0]
์ฒ๋ผ ํํฐ๋ง๊ณผ ๋ณํ ๋์ ์ฒ๋ฆฌif
์กฐ๊ฑด์ ๊ฒฐ๊ณผ ๋ฆฌ์คํธ์ ํฌํจ๋ ์์๋ง ์ ์ง
3. ๋ค์ค ํ ๋น ๋ฐ ํจํน/์ธํจํน
a, b, c = [1, 2, 3]
์ฒ๋ผ ๋ฆฌ์คํธ/ํํ์ ์์๋ฅผ ํ ๋ฒ์ ํ ๋นfirst, middle, last = [10, 20, 30, 40, 50]
์ฒ๋ผ ์ค๊ฐ ์์๋ฅผmiddle
๋ก ์ถ์ถ
4. ๋ณ์ ์ค์
a, b = b, a
์ฒ๋ผtemp
๋ณ์ ์์ด ํ ์ค๋ก ์ค์ ๊ฐ๋ฅ- Pythonic ์คํ์ผ๋ก ๊ถ์ฅ
5. ๋ฌธ์์ด ๊ฒฐํฉ
" - ".join(words)
์ฒ๋ผjoin()
๋ฉ์๋๋ก ๋ฆฌ์คํธ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฒฐํฉ- ์๋ ๋ฃจํ ๋์ ๊ฐ๊ฒฐํ ์ฝ๋ ์์ฑ ๊ฐ๋ฅ
6. `enumerate()` ์ฌ์ฉ
for idx, name in enumerate(names)
์ฒ๋ผ ์ธ๋ฑ์ค์ ์์๋ฅผ ๋์์ ์ฒ๋ฆฌrange(len(...))
๋์ ๋ช ํ์ฑ ํฅ์
7. ํ ์ค ์กฐ๊ฑด์ (`ternary operator`)
status = "adult" if age >= 18 else "minor"
์ฒ๋ผ ๊ฐ๋จํ ์กฐ๊ฑด์ ์ ํฉ- ์ฝ๋ ๊ฐ๋ ์ฑ ํฅ์
8. ๋ฃจํ `else` ๋ธ๋ก
for n in range(5): ... else: print(...)
์ฒ๋ผbreak
์์ด ์ข ๋ฃ ์ ์คํ- ์์ธ ์ฒ๋ฆฌ๋ ๊ฒ์ฆ ๋ก์ง์ ์ ์ฉ
9. `dict.get()` ์ฌ์ฉ
data.get("age", "Not provided")
์ฒ๋ผKeyError
๋ฐฉ์ง- ๊ธฐ๋ณธ๊ฐ ์ค์ ์ผ๋ก ์์ ์ฑ ํฅ์
10. ๋์ ๋๋ฆฌ ์ปดํ๋ฆฌํจ์
{x: x*x for x in range(5)}
์ฒ๋ผ ๋์ ๋๋ฆฌ ์์ฑ์ ํ ์ค๋ก ์ฒ๋ฆฌ- ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ ๊ณผ ์ ์ฌํ ๋ฐฉ์
๊ฒฐ๋ก
import this
๋ฅผ ํตํด Zen of Python์ ์ฒ ํ์ ํ์ธํด๋ณด์ธ์.- ์ค๋ฌด์ ์ ์ฉ ์
Walrus ์ฐ์ฐ์
์enumerate()
๋ฅผ ์ฃผ๋ก ํ์ฉํด ์ฝ๋ ๊ฐ๊ฒฐ์ฑ ํฅ์. dict.get()
๊ณผ*
ํจํน์ ๋ณต์กํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ ํ์์ ์ธ ํ.