ํ์ด์ฌ 3.8 ๋ฒ์ ๋ถํฐ ์๋ฌ์ค ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
์๋ฌ์ค ์ฐ์ฐ์๋ :=
์ ๊ฐ์ด ์ฌ์ฉํ๋๋ฐ, ์๊น์๊ฐ ๋ง์น ๋ฐ๋ค์ฝ๋ผ๋ฆฌ์ ๋๊ณผ ์๋๋ฅผ ๋ฎ์๋คํ์ฌ ์ด๋ฆ์ด ๋ถ์ฌ์ก๋ค๊ณ ํ๋ค. (๊ท์ฌ์..)
ํ์๋ ํ์ด์ฌ ์ฝ๋ฉ์ ๊ธฐ์ ์ฑ ์ ์ฝ๊ณ ์๋ฌ์ค ์ฐ์ฐ์์ ๋ํด ์๊ฒ ๋์๋๋ฐ, ์ง์ฆ ์์๋๋ผ๋ฉด ๋ง์ ์ฝ๋๋ฅผ ์ข ๋ ํด๋ฆฐํ๊ฒ ์งค ์ ์์ง ์์์๊น ์๊ฐ๋๋ค.
์๋ฌ์ค ์ฐ์ฐ์๋ ๋์ ์์ด๋ผ๊ณ ๋ ๋ถ๋ฅด๋๋ฐ ์ด๋ ๋์ ๋ฌธ์ด ์ฐ์ผ ์ ์๋ ์์น์์ ๋ณ์์ ๊ฐ์ ๋์ ํ ์ ์๋ค.
์๋ฅผ ๋ค๋ฉด if๋ฌธ ์์ ๋์ ์์ ์ธ ์ ์๋ค.
์ฌ์ด ์์๋ก a
๋ผ๋ ๋ฆฌ์คํธ์ ๊ธธ์ด๊ฐ 10 ์ด์์ด๋ฉด ๊ธธ์ด์ ํจ๊ป ๋ฆฌ์คํธ๊ฐ ๋๋ฌด ๊ธธ๋ค๋ ๋ฌธ์ฅ์ ์ถ๋ ฅํ๋๋ก ํด๋ณด์.
if len(a) > 10:
print(f"List is too long ({len(a)} elements, expected <= 10)")
len(a)
์ ๋ ๋ฒ ๊ณ์ฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ์ง ๋ณ์์ ๋ด์์ฃผ๊ณ ์ถ์ ๋ง์์ด ๋ ๋ค.
n = len(a)
if n:
print(f"List is too long ({n} elements, expected <= 10)")
์ข ๋ ๊น๋ํด์ก์ง๋ง n
์ if๋ฌธ ์์์๋ง ์ฐ์ด๋๋ฐ, ์ด๋ฅผ if๋ฌธ ์์์ ์ ์ธ์ ํด์ฃผ๋ ๋๋จํ ์ค์ํ ๋ณ์์ฒ๋ผ ๋ณด์ธ๋ค.
์ด๋ด ๋ ์ฌ์ฉํ๋ ์ฐ์ฐ์๊ฐ ๋ฐ๋ก ๋ฐ๋ค ์ฝ๋ผ๋ฆฌ ์๋ฌ์ค ์ฐ์ฐ์์ด๋ค.
์๋ฌ์ค ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด if๋ฌธ ์์์ ๋ณ์๋ฅผ ์ ์ธํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected <= 10)")
์์ฐ! ํจ์ฌ ๊น๋ํด์ก๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ์ ๊ท์์ ๋ค๋ฃฐ ๋๋ ์๋ฌ์ค ์ฐ์ฐ์๊ฐ ์์ผ๋ฉด ๋ฐ๋ณต์ ํผํ ์ ์๋ค.
discount = 0.0
if (mo := re.search(r'(\d+)% discount', advertisement)):
discount = float(mo.group(1)) / 100.0
loop ์ข ๋ฃ๋ฅผ ํ ์คํธํ๊ธฐ ์ํด ๊ฐ์ ๊ณ์ฐํ ๋ค์ loop์์ ๋์ผํ ๊ฐ์ ๋ค์ ํ์๋ก ํ๋ while loop์๋ ์ ์ฉํ๊ฒ ์ฐ์ธ๋ค.
while (block := f.read(256)) != '':
process(block)
๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ ์์ ํํฐ๋ง์ ํ๋ ๊ฒฝ์ฐ์๋ ์๋ฌ์ค ์ฐ์ฐ์๋ฅผ ํ์ฉํ ์ ์๋ค.
[clean_name.title() for name in names
if (clean_name := normalize('NFC', name)) in allowed_names]
์๋ฌ์ค ์ฐ์ฐ์๋ฅผ ์๊ณ ๋๋ ๊ณ ์น ์ ์๋ ์ฝ๋๊ฐ ๋ง์ด ๋ณด์ธ๋ค.
๊ฐ๋จํ์ง๋ง ํ์ฉํ๊ธฐ ์ข์ ๊ฐ๋ ๋ค์ ์๊ฒ ๋๋ฉด ๊ธฐ๋ถ์ด ์ข๋ค.
์ ์ด๋ ๊พธ์คํ ์ฌ์ฉํ ์ธ์ด์ ํ๋ ์์ํฌ๋ค์ ์ ๋ฐ์ดํธ ๋ ธํธ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ธํด์ผ๊ฒ ๋จ ์๊ฐ์ด ๋ ๋ค.