2์ฃผ์ฐจ ๊ฐ์ ์ฃผ์ ๋ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ์ ๋๋ค.
[Chapter 04] ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ
1. ์กฐ๊ฑด๋ฌธ
1) ์กฐ๊ฑด๋ฌธ์ ๊ฐ๋
์กฐ๊ฑด๋ฌธ : ์กฐ๊ฑด์ ๋ฐ๋ผ ํน์ ๋์์ ํ๋๋ก ํ๋ ํ๋ก๊ทธ๋๋ฐ ๋ช ๋ น
- ์กฐ๊ฑด๋ฌธ์ ๊ตฌ์ฑํ๊ธฐ ์ํด์๋ ์กฐ๊ฑด์ ๋ํ๋ด๋ ๊ธฐ์ค๊ณผ ์คํํด์ผ ํ ๋ช ๋ น์ด ํ์ํ๋ค.
- ์กฐ๊ฑด๋ฌธ์ ๋ฐ๋์ ์กฐ๊ฑด์ ์ฐธ(True)๊ณผ ๊ฑฐ์ง(False)์ผ๋ก ๊ตฌ๋ถ๋์ด์ผ ํ๋ค.
- ex) ‘์ค๋งํธํฐ ์ ๊ธ ํด์ ํจํด์ด 5ํ ํ๋ฆฌ๋ฉด’์ด ์กฐ๊ฑด์ ๊ธฐ์ค์ด๊ณ , ‘20์ด ๋์ ๋๊ธฐ ์ํ’๊ฐ ์คํํด์ผ ํ ๋ช ๋ น์ด๋ค.
2) if-else๋ฌธ
if-else๋ฌธ์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
if <์กฐ๊ฑด>: # if๋ฅผ ์
๋ ฅํ๊ณ ์กฐ๊ฑด ์ฝ์
ํ ':'์
๋ ฅ
<์ํ ๋ช
๋ น 1-1> # ๋ค์ฌ์ฐ๊ธฐ ํ ์ํ ๋ช
๋ น ์
๋ ฅ
<์ํ ๋ช
๋ น 1-2> # ๊ฐ์ ์กฐ๊ฑด์์ ๊ณ์ ์ํํ ๋ช
๋ น์ผ ๊ฒฝ์ฐ ๋ค์ฌ์ฐ๊ธฐ ์ ์ง
else: # ์กฐ๊ฑด์ด ๋ถ์ผ์นํ ๊ฒฝ์ฐ ์ํํ ๋ช
๋ น
<์ํ ๋ช
๋ น 2-1> # ์กฐ๊ฑด ๋ฌผ์ผ์น ์ ์ํํ ๋ช
๋ น ์
๋ ฅ
<์ํ ๋ช
๋ น 2-2> # ์กฐ๊ฑด ๋ถ์ผ์น ์ ์ํํ ๋ช
๋ น์ผ ๊ฒฝ์ฐ ๋ค์ฌ์ฐ๊ธฐ ์ ์ง
โ if ๋ค์๋ ์ฐธ๊ณผ ๊ฑฐ์ง์ ํ๋จํ ์ ์๋ ์กฐ๊ฑด๋ฌธ์ด ์์ผ ํ๊ณ , ์กฐ๊ฑด๋ฌธ์ด ๋๋๋ฉด ๋ฐ๋์ ์ฝ๋ก (:)์ ๋ถ์ฌ์ผ ํ๋ค.
โก ๋ค์ฌ์ฐ๊ธฐ indentation๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์ฐ ์ํํ ๋ช ๋ น์ ์์ฑํ๋ค. ๋ช ๋ น์ด๋ผ๋ ๊ฒ์ ๊ฑฐ์ฐฝํ๊ฒ ์๊ฐํ์ง ๋ง๊ณ . ๋จ์ํ a = 30์ฒ๋ผ ์์์ ๋ฐฐ์ด ์ฌ๋ฌ ํ์ด์ฌ ์ฝ๋๋ฅผ ์์ฑํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. ๋ค์ฌ์ฐ๊ธฐ๋ [Space] ํค๋ [Tab] ํค ๋ฑ์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์ผ์ ๊ฐ๊ฒฉ ์์ชฝ์ผ๋ก ๋ฃ๋ ๊ฒ์ด๋ค. ๋ค์ฌ์ฐ๊ธฐ๋ ํ์ด์ฌ์ด ๊ธฐ์กด ๋ค๋ฅธ ์ธ์ด๋ค๊ณผ ๊ฐ์ฅ ํฐ ์ฐจ์ด๋ฅผ ๋ณด์ด๋ ๋ฌธ๋ฒ์ผ๋ก, ๋ค๋ฅธ ์ธ์ด๋ค์ ๋นํด ์ฝ๋์ ๋ํ ์๊ฐ์ ์ดํด์ ๋์์ด ๋๋ค.
โข if์ ์กฐ๊ฑด์ด ๊ฑฐ์ง์ผ ๊ฒฝ์ฐ else๋ฌธ์ด ์ํ๋๋ค. else๋ฌธ์ ์๋ตํด๋ ์๊ด์๋ค. ๋ง์ฝ ์กฐ๊ฑด์ ํด๋นํ์ง ์๋ ๊ฒฝ์ฐ ์ฒ๋ฆฌํด์ผ ํ ๋ช ๋ น์ด ์๋ค๋ฉด else๋ฌธ์ ๋ฃ์ผ๋ฉด ๋๋ค.
print("Tell me your age?")
myage = int(input()) # ๋์ด๋ฅผ ์
๋ ฅ๋ฐ์ myage ๋ณ์์ ํ ๋น
if myage<30: # myage๊ฐ 30 ๋ฏธ๋ง์ผ ๋
print("Welcome to the Club.")
else: # myage๊ฐ 30 ์ด์์ผ ๋
print("Oh! No. You are not accepted."))
์ ์ฝ๋์์ ๋จผ์ ๋์ด๋ฅผ ์ ๋ ฅํ๋ผ๋ ๋ฉ์ธ์ง๊ฐ ๋ํ๋๋ฉด ์ฌ์ฉ์๊ฐ ๋์ด๋ฅผ ์ ๋ ฅ
>>> (True) ๋ง์ฝ ๋์ด๊ฐ 30์ธ ๋ฏธ๋ง์ด๋ฉด "Welcome to the Club."์ถ๋ ฅ
>>> (False)๋ง์ฝ ๋์ด๊ฐ 30์ธ ์ด์์ด๋ฉด "Oh! No. You are not accepted."์ถ๋ ฅ
3) ์กฐ๊ฑด์ ํ๋จ
3.1 ๋น๊ต ์ฐ์ฐ์
โป ํ์ด์ฌ์์๋ ๊ฐ์์ ์๋ฏธํ๋ == ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๊ณ , ํ ๋น์ ์๋ฏธ๋ฅผ ํํํ ๋๋ = ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ค.
==์ฐ์ฐ์์ is์ฐ์ฐ์ ๊ตฌ๋ถ
>>> a = 100
>>> b = 100
>>> a is b
True
>>> a == b
True
>>> a = 300
>>> b = 300
>>> a == b
True
>>> a is b
False
ํ์ด์ฌ์ ์ฒ์ ์ธํฐํ๋ฆฌํฐ๋ฅผ ์์ํ ๋ -5~256๊น์ง๋ ๋ณํ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ(์ ์ ๋ฉ๋ชจ๋ฆฌstatic memory) ์ฃผ์์ ๊ฐ์ ํ ๋นํ๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋น ๊ฐ์ ๋ค๋ฅธ ์ฌ์ฉํ ๋ ๊ทธ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ฐํํ๋ค. ๊ทธ๋์ a์ b, ๋ ๋ค 100์ผ ๋๋ is์ ==๋ชจ๋ ๊ฐ๋ค๊ณ ๋์ค์ง๋ง, ๋ ๋ค 300์ผ ๊ฒฝ์ฐ์๋ ๊ฐ๋ง ๊ฐ๊ณ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ ๋ค๋ฅด๋ค๊ณ ๋์จ๋ค. is not๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ฉ๋๋ค.
3.2 True์ False์ ์นํ
์ปดํจํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด์ง์๋ง ์ฒ๋ฆฌํ ์ ์์ผ๋ฏ๋ก True๋ 1๋ก False๋ 0์ผ๋ก ์ฒ๋ฆฌํ๋ค.
print((3>5)>10)
print((2<11)<10)
>>> 3>5๋ False๊ฐ ๋์ด 0์ผ๋ก ์นํ๋๋ค. ๊ทธ๋์ ์ด๊ฒ์ ๋ค์ ์นํํ๋ฉด (0)>10์ด ๋๊ณ , ๊ฐ์ ๊ฑฐ์ง์ด๋ฏ๋ก False๊ฐ ๋ฐํ๋๋ค.
??? 2<11๋ True๊ฐ ๋์ด 1๋ก ์นํ๋๋ค ๊ทธ๋์ ์ด๊ฒ์ ๋ค์ ์นํํ๋ฉด (1)<10์ด ๋๊ณ , ๊ฐ์ ์ฐธ์ด๋ฏ๋ก True๊ฐ ๋ฐํ๋๋ค.
3.3 ๋ ผ๋ฆฌ ์ฐ์ฐ์
๋ ผ๋ฆฌ ์ฐ์ฐ์๋ and/or/not์ด ์์ผ๋ฉฐ, ๋ ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ํตํด ์กฐ๊ฑด๋ฌธ์ ์ข ๋ ํ์ฅํ ์ ์๋ค.
a = 20
b = 24
print(a==20 and b==24)
print(a>23 or b>23)
print(not(a>10))
>>> a==20 and b==24์ ****๊ฒฝ์ฐ, a==8์ ์ฐธ์ด๊ณ b==20์ ์ฐธ์ด๋ฏ๋กTrue and True๋ก ์นํ๋๊ณ , ๋ ๋ค ์ฐธ์ด๋ฏ๋ก True๊ฐ ์ถ๋ ฅ๋๋ค.
>>> a>23 or b>23์ ๊ฒฝ์ฐ, a>23์ ๊ฑฐ์ง์ด๊ณ b>23์ ์ฐธ์ด๋ฏ๋ก False or True๋ก ์นํ๋๊ณ , ๋ ์ค ํ๋๊ฐ ์ฐธ์ด๋ฏ๋ก True๊ฐ ์ถ๋ ฅ๋๋ค.
>>> **not(a>10)**์ ๊ฒฝ์ฐ, not True๋ก ์นํ๋๊ณ , True๋ not์ ์ํด False๊ฐ ์ถ๋ ฅ๋๋ค.
4) if-elif-else๋ฌธ
์ค์ฒฉ if-else ์กฐ๊ฑด๋ฌธ
์กฐ๊ฑด๋ฌธ ๋ด์ ๋ ๋ค๋ฅธ ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ ์กฐ๊ฑด๋ฌธ
age = int(input("Enter your age:"))
if age >= 20:
if age >= 65:
print('๋
ธ์ธ์
๋๋ค.')
else:
print('์ฑ์ธ์
๋๋ค.')
else:
print('๋ฏธ์ฑ๋
์์
๋๋ค.')
>>> ์ฌ์ฉ์ ์ ๋ ฅ์ผ๋ก 22๋ฅผ ๋ฐ์ if age >= 20: ๋ง ๋ง์กฑํ๋ฏ๋ก ‘์ฑ์ธ์ ๋๋ค.’๊ฐ ์ถ๋ ฅ๋์๋ค.
if-elif-else ์กฐ๊ฑด๋ฌธ(๋ค์ค if๋ฌธ)
์ค์ฒฉ if๋ฌธ ์ค๊ฐ์ if~else๋ฌธ์ elif๋ฌธ์ผ๋ก ์ค์ฌ์ ์ฌ์ฉํ ์ ์๋ค. ์ธ ๊ฐ ์ด์์ ์กฐ๊ฑด์ ์ฐ๊ฒฐํด์ ์ฌ์ฉํ๋ค
age = int(input("Enter your age:"))
if age >= 65:
print('๋
ธ์ธ์
๋๋ค.')
elif age >= 20:
print('์ฑ์ธ์
๋๋ค.')
else:
print('๋ฏธ์ฑ๋
์์
๋๋ค.')
>>> ์ฌ์ฉ์ ์ ๋ ฅ์ผ๋ก elif age >= 20: ์ ๋ง์กฑํ์ฌ ‘์ฑ์ธ์ ๋๋ค.’๊ฐ ์ถ๋ ฅ๋์๋ค.
๐ ๋ด์ฉ์ด ๋ง์ ๊ด๊ณ๋ก ์ค์ ๋๋ค. ๋๋จธ์ง ๋ด์ฉ์ ์ฒจ๋ถํ ๊ฐ์์ pdf ํ์ผ๋ก ํ์ธํด์ฃผ์๊ธธ ๋ฐ๋๋๋ค.