Created at : 2024-09-02 11:22
Auther: Soo.Y
4. ์ ์ด๋ฌธ (Control Statements)
์ ์ด๋ฌธ์ ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ ์ ์ดํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ ์ด๋ฌธ์ ์ฌ์ฉํ๋ฉด ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฝ๋์ ์คํ์ ๋ถ๊ธฐํ๊ฑฐ๋, ๋ฐ๋ณต์ ์ผ๋ก ์คํํ ์ ์์ต๋๋ค. ์ด ์น์ ์์๋ ํ์ด์ฌ์์ ์ฌ์ฉํ๋ ์ฃผ์ ์ ์ด๋ฌธ์ธ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ์ ๋ํด ๋ค๋ฃน๋๋ค.
4.1 ์กฐ๊ฑด๋ฌธ (Conditional Statements)
์กฐ๊ฑด๋ฌธ์ ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฝ๋์ ์คํ์ ์ ์ดํฉ๋๋ค. ํ์ด์ฌ์์๋ if
, elif
, else
ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด๋ฌธ์ ์์ฑํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธ ๊ตฌ์กฐ:
if ์กฐ๊ฑด์:
์คํํ ์ฝ๋
elif ๋ค๋ฅธ_์กฐ๊ฑด์:
๋ค๋ฅธ ์กฐ๊ฑด์ด ์ฐธ์ผ ๋ ์คํํ ์ฝ๋
else:
๋ชจ๋ ์กฐ๊ฑด์ด ๊ฑฐ์ง์ผ ๋ ์คํํ ์ฝ๋
- ์์ :
x = 10
if x > 0:
print("x๋ ์์์
๋๋ค.")
elif x == 0:
print("x๋ 0์
๋๋ค.")
else:
print("x๋ ์์์
๋๋ค.")
์ด ์ฝ๋๋ x
์ ๊ฐ์ ๋ฐ๋ผ ์ถ๋ ฅ์ด ๋ฌ๋ผ์ง๋๋ค. ๋ง์ฝ x
๊ฐ 10์ด๋ผ๋ฉด, โx๋ ์์์
๋๋ค.โ๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.
-
์ค์ฒฉ ์กฐ๊ฑด๋ฌธ: ์กฐ๊ฑด๋ฌธ์ ์ค์ฒฉํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ณต์กํ ์กฐ๊ฑด์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
x = 15 if x > 10: if x < 20: print("x๋ 10๋ณด๋ค ํฌ๊ณ 20๋ณด๋ค ์์ต๋๋ค.")
์ด ์์ ์์๋
x
๊ฐ 10๋ณด๋ค ํฌ๊ณ 20๋ณด๋ค ์์ ๊ฒฝ์ฐ์๋ง ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.
4.2 ๋ฐ๋ณต๋ฌธ (Loops)
๋ฐ๋ณต๋ฌธ์ ํน์ ์ฝ๋ ๋ธ๋ก์ ์ฌ๋ฌ ๋ฒ ์คํํ ์ ์๊ฒ ํด์ค๋๋ค. ํ์ด์ฌ์์๋ for
๋ฌธ๊ณผ while
๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐ๋ณต ์์
์ ์ํํ ์ ์์ต๋๋ค.
4.2.1 for
๋ฐ๋ณต๋ฌธ
for
๋ฌธ์ ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด(์: ๋ฆฌ์คํธ, ๋ฌธ์์ด, ๋ฒ์ ๋ฑ)์ ์์๋ฅผ ์์ฐจ์ ์ผ๋ก ์ ๊ทผํ๋ฉฐ ๋ฐ๋ณต์ ์ํํฉ๋๋ค.
-
๊ธฐ๋ณธ ๊ตฌ์กฐ:
for ๋ณ์ in ๋ฐ๋ณต๊ฐ๋ฅํ_๊ฐ์ฒด: ์คํํ ์ฝ๋
-
์์ :
fruits = ["์ฌ๊ณผ", "๋ฐ๋๋", "์ฒด๋ฆฌ"] for fruit in fruits: print(fruit)
์ด ์์ ๋
fruits
๋ฆฌ์คํธ์ ๊ฐ ์์๋ฅผ ์์ฐจ์ ์ผ๋ก ์ถ๋ ฅํฉ๋๋ค. -
range()
ํจ์์ ํจ๊ป ์ฌ์ฉํ๊ธฐ:range()
ํจ์๋ ์ผ์ ํ ๋ฒ์์ ์ซ์๋ฅผ ์์ฑํ๋๋ฐ ์ฌ์ฉ๋๋ฉฐ,for
๋ฌธ๊ณผ ํจ๊ป ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.for i in range(5): print(i)
์ด ์ฝ๋๋ 0๋ถํฐ 4๊น์ง์ ์ซ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
4.2.2 enumerate()
์ ํจ๊ป ์ฌ์ฉํ๊ธฐ
enumerate()
ํจ์๋ ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ๋ฐ๋ณตํ ๋, ์ธ๋ฑ์ค์ ๊ฐ์ ๋์์ ์ถ์ถํ ์ ์๊ฒ ํด์ค๋๋ค. enumerate()
๋ ๋ฆฌ์คํธ๋ฟ๋ง ์๋๋ผ ํํ, ๋ฌธ์์ด ๋ฑ ๋ค์ํ ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธ ๊ตฌ์กฐ:
for ์ธ๋ฑ์ค, ๊ฐ in enumerate(๋ฐ๋ณต๊ฐ๋ฅํ_๊ฐ์ฒด, ์์_์ธ๋ฑ์ค):
์คํํ ์ฝ๋
์์_์ธ๋ฑ์ค
๋ ์ ํ ์ฌํญ์ด๋ฉฐ, ๊ธฐ๋ณธ๊ฐ์ 0์
๋๋ค.
- ์์ :
fruits = ["์ฌ๊ณผ", "๋ฐ๋๋", "์ฒด๋ฆฌ"]
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
์ด ์ฝ๋๋ ๋ฆฌ์คํธ์ ๊ฐ ์์์ ํจ๊ป ํด๋น ์์์ ์ธ๋ฑ์ค๋ฅผ ์ถ๋ ฅํฉ๋๋ค. ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
0: ์ฌ๊ณผ
1: ๋ฐ๋๋
2: ์ฒด๋ฆฌ
enumerate()
์ ์์ ์ธ๋ฑ์ค ์ง์ :enumerate()
ํจ์์ ๋ ๋ฒ์งธ ์ธ์๋ก ์์ ์ธ๋ฑ์ค๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
fruits = ["์ฌ๊ณผ", "๋ฐ๋๋", "์ฒด๋ฆฌ"]
for index, fruit in enumerate(fruits, start=1):
print(f"{index}: {fruit}")
์ด ์์ ์์๋ ์ธ๋ฑ์ค๊ฐ 1๋ถํฐ ์์ํฉ๋๋ค:
1: ์ฌ๊ณผ
2: ๋ฐ๋๋
3: ์ฒด๋ฆฌ
4.2.3 while
๋ฐ๋ณต๋ฌธ
while
๋ฌธ์ ์กฐ๊ฑด์ด ์ฐธ์ธ ๋์ ๊ณ์ํด์ ๋ฐ๋ณต์ ์ํํฉ๋๋ค. ์กฐ๊ฑด์ด ๊ฑฐ์ง์ด ๋๋ฉด ๋ฐ๋ณต์ด ์ข
๋ฃ๋ฉ๋๋ค.
-
๊ธฐ๋ณธ ๊ตฌ์กฐ:
while ์กฐ๊ฑด์: ์คํํ ์ฝ๋
-
์์ :
count = 0 while count < 5: print(count) count += 1
์ด ์ฝ๋๋
count
๊ฐ 5๋ณด๋ค ์์ ๋๊น์ง 0๋ถํฐ 4๊น์ง์ ์ซ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค. -
๋ฌดํ ๋ฃจํ:
while
๋ฌธ์ ์๋ชป ์ฌ์ฉํ๋ฉด ์กฐ๊ฑด์ด ํญ์ ์ฐธ์ด ๋์ด ๋ฌดํ ๋ฃจํ์ ๋น ์ง ์ ์์ต๋๋ค. ๋ฌดํ ๋ฃจํ๋ ํ๋ก๊ทธ๋จ์ ์ค๋จํ์ง ์์ผ๋ฉด ๊ณ์ ์คํ๋ฉ๋๋ค.while True: print("์ด ๋ฉ์์ง๋ ๋ฌดํํ ์ถ๋ ฅ๋ฉ๋๋ค.")
๋ฌดํ ๋ฃจํ๋ฅผ ํผํ๊ธฐ ์ํด์๋ ์ ์ ํ ์กฐ๊ฑด์ ์ค์ ํ๊ณ , ๋ฐ๋ณต๋ฌธ์ ๋น ์ ธ๋์ฌ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํด์ผ ํฉ๋๋ค.
4.3 ๋ฐ๋ณต ์ ์ด๋ฌธ (Loop Control Statements)
๋ฐ๋ณต๋ฌธ ๋ด์์ ๋ฐ๋ณต์ ํ๋ฆ์ ์ ์ดํ๊ธฐ ์ํด break
, continue
, pass
ํค์๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
4.3.1 break
break
ํค์๋๋ ๋ฐ๋ณต๋ฌธ์ ์ฆ์ ์ข
๋ฃ์ํต๋๋ค. ๋ฐ๋ณต๋ฌธ์ด ์คํ ์ค ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด break
๋ฅผ ํตํด ๋ฐ๋ณต์ ์ค๋จํ๊ณ ๋น ์ ธ๋์ฌ ์ ์์ต๋๋ค.
-
์์ :
for i in range(10): if i == 5: break print(i)
์ด ์ฝ๋๋ 0๋ถํฐ 4๊น์ง์ ์ซ์๋ฅผ ์ถ๋ ฅํ ํ,
i
๊ฐ 5๊ฐ ๋๋ฉด ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃํฉ๋๋ค.
4.3.2 continue
continue
ํค์๋๋ ํ์ฌ ๋ฐ๋ณต์ ์ค๋จํ๊ณ , ๋ค์ ๋ฐ๋ณต์ผ๋ก ๋์ด๊ฐ๋๋ค. ํน์ ์กฐ๊ฑด์์ ๋จ์ ์ฝ๋๋ฅผ ์คํํ์ง ์๊ณ , ๋ฐ๋ก ๋ค์ ๋ฐ๋ณต์ ์ํํ๊ณ ์ถ์ ๋ ์ฌ์ฉํฉ๋๋ค.
-
์์ :
for i in range(10): if i % 2 == 0: continue print(i)
์ด ์ฝ๋๋ ํ์๋ง ์ถ๋ ฅํฉ๋๋ค.
i
๊ฐ ์ง์์ผ ๋๋continue
๊ฐ ์คํ๋์ด ๋ค์ ๋ฐ๋ณต์ผ๋ก ๋์ด๊ฐ๋๋ค.
4.3.3 pass
pass
ํค์๋๋ ์๋ฌด ์ผ๋ ํ์ง ์๋ ๋ฌธ์ฅ์
๋๋ค. ์ฝ๋๊ฐ ๋ฌธ๋ฒ์ ์ผ๋ก ํ์ํ ์์น์ ์์ง๋ง, ์ค์ ๋ก๋ ์๋ฌด ์์
๋ ์ํํ์ง ์๊ธฐ๋ฅผ ์ํ ๋ ์ฌ์ฉํฉ๋๋ค.
-
์์ :
for i in range(5): if i == 3: pass # ๋์ค์ ๊ตฌํํ ์ฝ๋ ์๋ฆฌ print(i)
์ด ์ฝ๋๋ 0๋ถํฐ 4๊น์ง์ ์ซ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
i
๊ฐ 3์ผ ๋๋pass
๊ฐ ์คํ๋์ง๋ง, ์ด๋ ์๋ฌด๋ฐ ๋์๋ ํ์ง ์์ผ๋ฏ๋ก ์ถ๋ ฅ์ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค.
4.4 else
์ ํจ๊ป ์ฌ์ฉํ๋ ๋ฐ๋ณต๋ฌธ
ํ์ด์ฌ์์๋ for
๋๋ while
๋ฐ๋ณต๋ฌธ๊ณผ ํจ๊ป else
๋ธ๋ก์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด else
๋ธ๋ก์ ๋ฐ๋ณต๋ฌธ์ด ์ ์์ ์ผ๋ก ์ข
๋ฃ๋ ๋ ์คํ๋ฉ๋๋ค. ๋ง์ฝ ๋ฐ๋ณต๋ฌธ์ด break
์ ์ํด ์ข
๋ฃ๋๋ฉด else
๋ธ๋ก์ ์คํ๋์ง ์์ต๋๋ค.
-
์์ :
for i in range(5): print(i) else: print("๋ฐ๋ณต์ด ์ ์์ ์ผ๋ก ์ข ๋ฃ๋์์ต๋๋ค.")
์ด ์ฝ๋๋ 0๋ถํฐ 4๊น์ง์ ์ซ์๋ฅผ ์ถ๋ ฅํ ํ, โ๋ฐ๋ณต์ด ์ ์์ ์ผ๋ก ์ข ๋ฃ๋์์ต๋๋ค.โ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
-
break
์ ํจ๊ป ์ฌ์ฉ:for i in range(5): if i == 3: break print(i) else: print("์ด ๋ฉ์์ง๋ ์ถ๋ ฅ๋์ง ์์ต๋๋ค.")
์ด ์์ ์์๋
i
๊ฐ 3์ด ๋ ๋break
๊ฐ ์คํ๋์ด ๋ฐ๋ณต๋ฌธ์ด ์ข ๋ฃ๋๋ฏ๋ก,else
๋ธ๋ก์ ์คํ๋์ง ์์ต๋๋ค.
4.5 ์ค์ฒฉ ๋ฐ๋ณต๋ฌธ (Nested Loops)
ํ์ด์ฌ์์๋ ๋ฐ๋ณต๋ฌธ์ ์ค์ฒฉํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ค์ฒฉ๋ ๋ฐ๋ณต๋ฌธ์ ๋ฐ๊นฅ์ชฝ ๋ฐ๋ณต๋ฌธ์ด ์คํ๋๋ ๋์ ๋ด๋ถ ๋ฐ๋ณต๋ฌธ์ด ๋ฐ๋ณตํด์ ์คํ๋ฉ๋๋ค.
-
์์ :
for i in range(3): for j in range(3): print(f"i = {i}, j = {j}")
์ด ์ฝ๋๋ ๋ฐ๊นฅ์ชฝ ๋ฐ๋ณต๋ฌธ(
i
)์ด 3๋ฒ ๋ฐ๋ณต๋๋ ๋์, ๋ด๋ถ ๋ฐ๋ณต๋ฌธ(j
)์ด 3๋ฒ์ฉ ์คํ๋ฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ด 9๊ฐ์ ์กฐํฉ์ด ์ถ๋ ฅ๋ฉ๋๋ค.
์ด๋ ๊ฒ ํด์ ํ์ด์ฌ์ ์ ์ด๋ฌธ์ ๋ํด ์์๋ณด์์ต๋๋ค. ์ ์ด๋ฌธ์ ์ดํดํ๋ฉด ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ ๋์ฑ ํจ๊ณผ์ ์ผ๋ก ์ ์ดํ ์ ์์ผ๋ฉฐ, ๋ณต์กํ ์กฐ๊ฑด๊ณผ ๋ฐ๋ณต์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.