[TIL] ์ ์ด๋ฌธ
3-1. if๋ฌธ
if๋ฌธ์ ์ ํ์ํ ๊น?
>>> money = True
>>> if money:
... print("ํ์๋ฅผ ํ๊ณ ๊ฐ๋ผ")
... else:
... print("๊ฑธ์ด ๊ฐ๋ผ")
...
ํ์๋ฅผ ํ๊ณ ๊ฐ๋ผ
if๋ฌธ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
- if์ else๋ฅผ ์ฌ์ฉํ ์กฐ๊ฑด๋ฌธ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
if ์กฐ๊ฑด๋ฌธ:
์ํํ ๋ฌธ์ฅ1
์ํํ ๋ฌธ์ฅ2
...
else:
์ํํ ๋ฌธ์ฅA
์ํํ ๋ฌธ์ฅB
...
- ์กฐ๊ฑด๋ฌธ์ ํ
์คํธํด์ ์ฐธ์ด๋ฉด if๋ฌธ ๋ฐ๋ก ๋ค์ ๋ฌธ์ฅ(if ๋ธ๋ก)๋ค์ ์ํํ๊ณ , ์กฐ๊ฑด๋ฌธ์ด ๊ฑฐ์ง์ด๋ฉด else๋ฌธ ๋ค์ ๋ฌธ์ฅ(else ๋ธ๋ก)๋ค์ ์ํํจ
- else๋ฌธ์ if๋ฌธ ์์ด ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์
๋ค์ฌ์ฐ๊ธฐ
- if๋ฌธ์ ๋ง๋ค ๋๋ if ์กฐ๊ฑด๋ฌธ: ๋ฐ๋ก ์๋ ๋ฌธ์ฅ๋ถํฐ if๋ฌธ์ ์ํ๋ ๋ชจ๋ ๋ฌธ์ฅ์ ๋ค์ฌ์ฐ๊ธฐ(indentation)๋ฅผ ํด์ฃผ์ด์ผํจ
- ์๋์ ๊ฐ์ด ์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ผ ๊ฒฝ์ฐ โ์ํํ ๋ฌธ์ฅ1โ์ ๋ค์ฌ์ฐ๊ธฐํ๊ณ โ์ํํ ๋ฌธ์ฅ2โ์ โ์ํํ ๋ฌธ์ฅ3โ๋ ๋ค์ฌ์ฐ๊ธฐ ํด ์ฃผ์์
if ์กฐ๊ฑด๋ฌธ:
์ํํ ๋ฌธ์ฅ1
์ํํ ๋ฌธ์ฅ2
์ํํ ๋ฌธ์ฅ3
- โ์ํํ ๋ฌธ์ฅ2โ๋ฅผ ๋ค์ฌ์ฐ๊ธฐํ์ง ์์ผ๋ฉด ์ค๋ฅ ๋ฐ์
if ์กฐ๊ฑด๋ฌธ:
์ํํ ๋ฌธ์ฅ1
์ํํ ๋ฌธ์ฅ2
์ํํ ๋ฌธ์ฅ3
- โ์ํํ ๋ฌธ์ฅ3โ์ ๋ค์ฌ์ฐ๊ธฐํ์ง๋ง โ์ํํ ๋ฌธ์ฅ1โ์ด๋ โ์ํํ ๋ฌธ์ฅ2โ์ ๋ค์ฌ์ฐ๊ธฐ์ ๋๋น๊ฐ ๋ค๋ฅด๋ฉด ์ค๋ฅ ๋ฐ์
- ๋ค์ฌ์ฐ๊ธฐ๋ ์ธ์ ๋ ๊ฐ์ ๋๋น๋ก ํด์ผํจ
if ์กฐ๊ฑด๋ฌธ:
์ํํ ๋ฌธ์ฅ1
์ํํ ๋ฌธ์ฅ2
์ํํ ๋ฌธ์ฅ3
์กฐ๊ฑด๋ฌธ ๋ค์์ ์ฝ๋ก (:)์ ์์ง ๋ง์
- if ์กฐ๊ฑด๋ฌธ ๋ค์๋ ๋ฐ๋์ ์ฝ๋ก (:)์ด ๋ถ์
- ํ์ด์ฌ์ ๋ฌธ๋ฒ ๊ตฌ์กฐ
- ์์ผ๋ก ๋ฐฐ์ธ
while
์ด๋for
,def
,class
๋ฌธ์๋ ์ญ์ ๋ฌธ์ฅ์ ๋์ ์ฝ๋ก (:)์ด ํญ์ ๋ค์ด๊ฐ - ๋ค๋ฅธ ์ธ์ด์์๋
if
๋ฌธ์ { } ๊ธฐํธ๋ก ๊ฐ์ธ์ง๋ง ํ์ด์ฌ์์๋ ๋ค์ฌ์ฐ๊ธฐ๋ก ํด๊ฒฐํ๋ค๋ ์ ์ ๊ธฐ์ตํ์!!
์กฐ๊ฑด๋ฌธ์ด๋ ๋ฌด์์ธ๊ฐ?
- if ์กฐ๊ฑด๋ฌธ์์ โ์กฐ๊ฑด๋ฌธโ์ด๋ ์ฐธ๊ณผ ๊ฑฐ์ง์ ํ๋จํ๋ ๋ฌธ์ฅ
๋น๊ต์ฐ์ฐ์
๋น๊ต์ฐ์ฐ์ | ์ค๋ช |
---|---|
x < y | x๊ฐ y๋ณด๋ค ์๋ค |
x > y | x๊ฐ y๋ณด๋ค ํฌ๋ค |
x == y | x์ y๊ฐ ๊ฐ๋ค |
x != y | x์ y๊ฐ ๊ฐ์ง ์๋ค |
x >= y | x๊ฐ y๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๋ค |
x <= y | x๊ฐ y๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค |
>>> x = 3
>>> y = 2
>>> x > y
True
>>> x < y
False
>>> x == y
False
>>> x != y
True
and, or, not
์ฐ์ฐ์ | ์ค๋ช |
---|---|
x or y | x์ y ๋์ค์ ํ๋๋ง ์ฐธ์ด์ด๋ ์ฐธ์ด๋ค |
x and y | x์ y ๋ชจ๋ ์ฐธ์ด์ด์ผ ์ฐธ์ด๋ค |
not x | x๊ฐ ๊ฑฐ์ง์ด๋ฉด ์ฐธ์ด๋ค |
- ๋์ด 3000์ ์ด์ ์๊ฑฐ๋ ์นด๋๊ฐ ์๋ค๋ฉด ํ์๋ฅผ ํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฑธ์ด ๊ฐ๋ผ
>>> money = 2000
>>> card = True
>>> if money >= 3000 or card:
... print("ํ์๋ฅผ ํ๊ณ ๊ฐ๋ผ")
... else:
... print("๊ฑธ์ด๊ฐ๋ผ")
...
ํ์๋ฅผ ํ๊ณ ๊ฐ๋ผ
>>>
- money๋ 2000์ด์ง๋ง card๊ฐ True์ด๊ธฐ ๋๋ฌธ์
money >= 3000 or card
์กฐ๊ฑด๋ฌธ์ด ์ฐธ
x in s, x not in s
- ํ์ด์ฌ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฝ๊ฒ ๋ณผ ์ ์๋ ์กฐ๊ฑด๋ฌธ์ ์ ๊ณตํจ
in | not in |
---|---|
x in ๋ฆฌ์คํธ | x not in ๋ฆฌ์คํธ |
x in ํํ | x not in ํํ |
x in ๋ฌธ์์ด | x not in ๋ฌธ์์ด |
>>> 1 in [1, 2, 3]
True
>>> 1 not in [1, 2, 3]
False
- ์ฒซ ๋ฒ์งธ ์๋ โ[1, 2, 3]์ด๋ผ๋ ๋ฆฌ์คํธ ์์ 1์ด ์๋๊ฐ?โ ์กฐ๊ฑด๋ฌธ
- 1์ [1, 2, 3] ์์ ์์ผ๋ฏ๋ก ์ฐธ -> True
- ๋ ๋ฒ์งธ ์๋ โ[1, 2, 3] ๋ฆฌ์คํธ ์์ 1์ด ์๋๊ฐ?โ ์กฐ๊ฑด๋ฌธ
- 1์ [1, 2, 3] ์์ ์์ผ๋ฏ๋ก ๊ฑฐ์ง -> False
- ํํ๊ณผ ๋ฌธ์์ด์ ์ ์ฉํ ์
>>> 'a' in ('a', 'b', 'c')
True
>>> 'j' not in 'python'
True
- โ๋ง์ฝ ์ฃผ๋จธ๋์ ๋์ด ์์ผ๋ฉด ํ์๋ฅผ ํ๊ณ , ์์ผ๋ฉด ๊ฑธ์ด ๊ฐ๋ผ.โ
>>> pocket = ['paper', 'cellphone', 'money']
>>> if 'money' in pocket:
... print("ํ์๋ฅผ ํ๊ณ ๊ฐ๋ผ")
... else:
... print("๊ฑธ์ด๊ฐ๋ผ")
...
ํ์๋ฅผ ํ๊ณ ๊ฐ๋ผ
>>>
- [โpaperโ, โcellphoneโ, โmoneyโ] ๋ฆฌ์คํธ ์์ โmoneyโ๊ฐ ์์ผ๋ฏ๋ก โmoneyโ in pocket์ ์ฐธ์ด ๋จ
- ๋ฐ๋ผ์ if๋ฌธ ๋ค์ ๋ฌธ์ฅ์ด ์ํ๋จ
์กฐ๊ฑด๋ฌธ์์ ์๋ฌด ์ผ๋ ํ์ง ์๊ฒ ์ค์ ํ๊ณ ์ถ๋ค๋ฉด?
- ์กฐ๊ฑด๋ฌธ์ ์ฐธ, ๊ฑฐ์ง์ ๋ฐ๋ผ ์คํํ ํ๋์ ์ ์ํ ๋, ์๋ฌด๋ฐ ์ผ๋ ํ์ง ์๋๋ก ์ค์ ํ๊ณ ์ถ์ ๋
- ์ด๋ด ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก
pass
- ์ด๋ด ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก
- โ์ฃผ๋จธ๋์ ๋์ด ์์ผ๋ฉด ๊ฐ๋งํ ์๊ณ ์ฃผ๋จธ๋์ ๋์ด ์์ผ๋ฉด ์นด๋๋ฅผ ๊บผ๋ด๋ผ.โ
>>> pocket = ['paper', 'money', 'cellphone']
>>> if 'money' in pocket:
... pass
... else:
... print("์นด๋๋ฅผ ๊บผ๋ด๋ผ")
...
๋ค์ํ ์กฐ๊ฑด์ ํ๋จํ๋ elif
- โ์ฃผ๋จธ๋์ ๋์ด ์์ผ๋ฉด ํ์๋ฅผ ํ๊ณ , ์ฃผ๋จธ๋์ ๋์ ์์ง๋ง ์นด๋๊ฐ ์์ผ๋ฉด ํ์๋ฅผ ํ๊ณ , ๋๋ ์๊ณ ์นด๋๋ ์์ผ๋ฉด ๊ฑธ์ด ๊ฐ๋ผ.โ
>>> pocket = ['paper', 'cellphone']
>>> card = True
>>> if 'money' in pocket:
... print("ํ์๋ฅผ ํ๊ณ ๊ฐ๋ผ")
... elif card:
... print("ํ์๋ฅผ ํ๊ณ ๊ฐ๋ผ")
... else:
... print("๊ฑธ์ด๊ฐ๋ผ")
...
ํ์๋ฅผ ํ๊ณ ๊ฐ๋ผ
-
elif
๋ ์ด์ ์กฐ๊ฑด๋ฌธ์ด ๊ฑฐ์ง์ผ ๋ ์ํ๋จ -
if
,elif
,else
๋ฅผ ๋ชจ๋ ์ฌ์ฉํ ๋ ๊ธฐ๋ณธ ๊ตฌ์กฐ
If <์กฐ๊ฑด๋ฌธ>:
<์ํํ ๋ฌธ์ฅ1>
<์ํํ ๋ฌธ์ฅ2>
...
elif <์กฐ๊ฑด๋ฌธ>:
<์ํํ ๋ฌธ์ฅ1>
<์ํํ ๋ฌธ์ฅ2>
...
elif <์กฐ๊ฑด๋ฌธ>:
<์ํํ ๋ฌธ์ฅ1>
<์ํํ ๋ฌธ์ฅ2>
...
...
else:
<์ํํ ๋ฌธ์ฅ1>
<์ํํ ๋ฌธ์ฅ2>
...
if๋ฌธ์ ํ ์ค๋ก ์์ฑํ๊ธฐ
>>> if 'money' in pocket:
... pass
... else:
... print("์นด๋๋ฅผ ๊บผ๋ด๋ผ")
...
>>> pocket = ['paper', 'money', 'cellphone']
>>> if 'money' in pocket: pass
... else: print("์นด๋๋ฅผ ๊บผ๋ด๋ผ")
...
์กฐ๊ฑด๋ถ ํํ์
if score >= 60:
message = "success"
else:
message = "failure"
-
score๊ฐ 60 ์ด์์ผ ๊ฒฝ์ฐ message์ ๋ฌธ์์ด โsuccessโ๋ฅผ, ์๋ ๊ฒฝ์ฐ์๋ โfailureโ๋ฅผ ๋์ ํ๋ ์ฝ๋
-
ํ์ด์ฌ์ ์กฐ๊ฑด๋ถ ํํ์(conditional expression)์ ์ฌ์ฉํ๋ฉด ์ ์ฝ๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๊ฐ๋จํ ํํํ ์ ์์
message = "success" if score >= 60 else "failure"
<์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ธ ๊ฒฝ์ฐ> if <์กฐ๊ฑด๋ฌธ> else <์กฐ๊ฑด๋ฌธ์ด ๊ฑฐ์ง์ธ ๊ฒฝ์ฐ>
- ์กฐ๊ฑด๋ถ ํํ์์ ๊ฐ๋ ์ฑ์ ์ ๋ฆฌํ๊ณ ํ ์ค๋ก ์์ฑํ ์ ์์ด ํ์ฉ์ฑ์ด ์ข์
3-2. while๋ฌธ
while๋ฌธ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
- ๋ฐ๋ณตํด์ ๋ฌธ์ฅ์ ์ํํด์ผ ํ ๊ฒฝ์ฐ while๋ฌธ์ ์ฌ์ฉ
- while๋ฌธ์ ๋ฐ๋ณต๋ฌธ์ด๋ผ ํจ
- while๋ฌธ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
while <์กฐ๊ฑด๋ฌธ>:
<์ํํ ๋ฌธ์ฅ1>
<์ํํ ๋ฌธ์ฅ2>
<์ํํ ๋ฌธ์ฅ3>
...```
- while๋ฌธ์ ์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ธ ๋์์ while๋ฌธ ์๋์ ๋ฌธ์ฅ์ด ๋ฐ๋ณตํด์ ์ํํจ
```python
>>> treeHit = 0
>>> while treeHit < 10:
... treeHit = treeHit +1
... print("๋๋ฌด๋ฅผ %d๋ฒ ์ฐ์์ต๋๋ค." % treeHit)
... if treeHit == 10:
... print("๋๋ฌด ๋์ด๊ฐ๋๋ค.")
...
๋๋ฌด๋ฅผ 1๋ฒ ์ฐ์์ต๋๋ค.
๋๋ฌด๋ฅผ 2๋ฒ ์ฐ์์ต๋๋ค.
๋๋ฌด๋ฅผ 3๋ฒ ์ฐ์์ต๋๋ค.
๋๋ฌด๋ฅผ 4๋ฒ ์ฐ์์ต๋๋ค.
๋๋ฌด๋ฅผ 5๋ฒ ์ฐ์์ต๋๋ค.
๋๋ฌด๋ฅผ 6๋ฒ ์ฐ์์ต๋๋ค.
๋๋ฌด๋ฅผ 7๋ฒ ์ฐ์์ต๋๋ค.
๋๋ฌด๋ฅผ 8๋ฒ ์ฐ์์ต๋๋ค.
๋๋ฌด๋ฅผ 9๋ฒ ์ฐ์์ต๋๋ค.
๋๋ฌด๋ฅผ 10๋ฒ ์ฐ์์ต๋๋ค.
๋๋ฌด ๋์ด๊ฐ๋๋ค.
- while๋ฌธ์ ์กฐ๊ฑด๋ฌธ
treeHit < 10
, treeHit๊ฐ 10๋ณด๋ค ์์ ๋์์ while๋ฌธ ์์ ๋ฌธ์ฅ์ ๊ณ์ ์ํ - whlie๋ฌธ ์์ ๋ฌธ์ฅ์ ๋ณด๋ฉด ์ ์ผ ๋จผ์
treeHit = treeHit + 1
๋ก treeHit ๊ฐ์ด ๊ณ์ 1์ฉ ์ฆ๊ฐ - ๋๋ฌด๋ฅผ treeHit๋ฒ๋งํผ ์ฐ์์์ ์๋ฆฌ๋ ๋ฌธ์ฅ์ ์ถ๋ ฅํ๊ณ treeHit๊ฐ 10์ด ๋๋ฉด โ๋๋ฌด ๋์ด๊ฐ๋๋ค.โ๋ผ๋ ๋ฌธ์ฅ์ ์ถ๋ ฅ
- ๊ทธ๋ฌ๊ณ ๋๋ฉด
treeHit < 10
์กฐ๊ฑด๋ฌธ์ด ๊ฑฐ์ง์ด ๋๋ฏ๋ก while๋ฌธ์ ๋น ์ ธ๋๊ฐ
treeHit = treeHit + 1
์ ํ๋ก๊ทธ๋๋ฐ์ ํ ๋ ๋งค์ฐ ์์ฃผ ์ฌ์ฉํ๋ ๊ธฐ๋ฒ
treeHit ๊ฐ์ 1๋งํผ์ฉ ์ฆ๊ฐ์ํฌ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉtreeHit += 1
์ฒ๋ผ ์ฌ์ฉํ๊ธฐ๋ ํจ
while๋ฌธ ๋ง๋ค๊ธฐ
>>> prompt = """
... 1. Add
... 2. Del
... 3. List
... 4. Quit
...
... Enter number: """
>>>
- number ๋ณ์์ 0์ ๋จผ์ ๋์
ํด์ผํจ
- ๋ณ์๋ฅผ ๋จผ์ ์ค์ ํด ๋์ง ์์ผ๋ฉด ๋ค์์ ๋์ฌ while๋ฌธ์ ์กฐ๊ฑด๋ฌธ์ธ
number != 4
์์ ๋ณ์๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ ์ค๋ฅ๊ฐ ๋ฐ์
- ๋ณ์๋ฅผ ๋จผ์ ์ค์ ํด ๋์ง ์์ผ๋ฉด ๋ค์์ ๋์ฌ while๋ฌธ์ ์กฐ๊ฑด๋ฌธ์ธ
>>> number = 0
>>> while number != 4:
... print(prompt)
... number = int(input())
...
1. Add
2. Del
3. List
4. Quit
Enter number:
- while๋ฌธ์ ๋ณด๋ฉด number๊ฐ 4๊ฐ ์๋ ๋์ prompt๋ฅผ ์ถ๋ ฅํ๊ณ ์ฌ์ฉ์๋ก๋ถํฐ ๋ฒํธ๋ฅผ ์
๋ ฅ๋ฐ์
- ์ฌ์ฉ์๊ฐ ๊ฐ 4๋ฅผ ์ ๋ ฅํ์ง ์์ผ๋ฉด ๊ณ์ํด์ prompt๋ฅผ ์ถ๋ ฅ
while๋ฌธ ๊ฐ์ ๋ก ๋น ์ ธ๋๊ฐ๊ธฐ
- while๋ฌธ์ ์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ธ ๋์ ๊ณ์ํด์ while๋ฌธ ์์ ๋ด์ฉ์ ๋ฐ๋ณต์ ์ผ๋ก ์ํํจ
- while๋ฌธ์ ๋ฐ๋ณต์ ๊ฐ์ ๋ก ๋ฉ์ถ๊ฒ ํ๋ ค๋ฉด
break
๋ฌธ์ ์ฌ์ฉ
>>> coffee = 10
>>> money = 300
>>> while money:
... print("๋์ ๋ฐ์์ผ๋ ์ปคํผ๋ฅผ ์ค๋๋ค.")
... coffee = coffee -1
... print("๋จ์ ์ปคํผ์ ์์ %d๊ฐ์
๋๋ค." % coffee)
... if coffee == 0:
... print("์ปคํผ๊ฐ ๋ค ๋จ์ด์ก์ต๋๋ค. ํ๋งค๋ฅผ ์ค์งํฉ๋๋ค.")
... break
...
- money๊ฐ 300์ผ๋ก ๊ณ ์ ๋์ด ์์ผ๋ฏ๋ก
while money:
์์ ์กฐ๊ฑด๋ฌธ์ธ money๋ 0์ด ์๋๊ธฐ ๋๋ฌธ์ ํญ์ ์ฐธ- ํํ ๋ฐ๋ณต๋๋ ๋ฌดํ ๋ฃจํ๋ฅผ ๋๊ฒ ๋จ
- while๋ฌธ์ ๋ด์ฉ์ ํ ๋ฒ ์ํํ ๋๋ง๋ค
coffee = coffee - 1
์ ์ํด์ coffee์ ๊ฐ์๊ฐ 1๊ฐ์ฉ ์ค์ด๋ฌ - ๋ง์ฝ coffee๊ฐ 0์ด ๋๋ฉด
if coffee == 0:
๋ฌธ์ฅ์์coffee == 0:
์ด ์ฐธ์ด ๋๋ฏ๋ก if๋ฌธ ๋ค์ ๋ฌธ์ฅ โ์ปคํผ๊ฐ ๋ค ๋จ์ด์ก์ต๋๋ค. ํ๋งค๋ฅผ ์ค์งํฉ๋๋ค.โ๊ฐ ์ํ๋๊ณ break๋ฌธ์ด ํธ์ถ๋์ด while๋ฌธ์ ๋น ์ ธ๋๊ฐ
# coffee.py
coffee = 10
while True:
money = int(input("๋์ ๋ฃ์ด ์ฃผ์ธ์: "))
if money == 300:
print("์ปคํผ๋ฅผ ์ค๋๋ค.")
coffee = coffee -1
elif money > 300:
print("๊ฑฐ์ค๋ฆ๋ %d๋ฅผ ์ฃผ๊ณ ์ปคํผ๋ฅผ ์ค๋๋ค." % (money -300))
coffee = coffee -1
else:
print("๋์ ๋ค์ ๋๋ ค์ฃผ๊ณ ์ปคํผ๋ฅผ ์ฃผ์ง ์์ต๋๋ค.")
print("๋จ์ ์ปคํผ์ ์์ %d๊ฐ ์
๋๋ค." % coffee)
if coffee == 0:
print("์ปคํผ๊ฐ ๋ค ๋จ์ด์ก์ต๋๋ค. ํ๋งค๋ฅผ ์ค์ง ํฉ๋๋ค.")
break
- ์ ๋ ฅ ๋
C:\doit>python coffee.py๋์ ๋ฃ์ด ์ฃผ์ธ์:
- ์ ๋ ฅ ๋์ ์ฌ๋ฌ ์ซ์๋ฅผ ์ ๋ ฅํด ๋ณธ ๊ฒฐ๊ณผ
๋์ ๋ฃ์ด ์ฃผ์ธ์: 500
๊ฑฐ์ค๋ฆ๋ 200๋ฅผ ์ฃผ๊ณ ์ปคํผ๋ฅผ ์ค๋๋ค.
๋์ ๋ฃ์ด ์ฃผ์ธ์: 300
์ปคํผ๋ฅผ ์ค๋๋ค.
๋์ ๋ฃ์ด ์ฃผ์ธ์: 100
๋์ ๋ค์ ๋๋ ค์ฃผ๊ณ ์ปคํผ๋ฅผ ์ฃผ์ง ์์ต๋๋ค.
๋จ์ ์ปคํผ์ ์์ 8๊ฐ์
๋๋ค.
๋์ ๋ฃ์ด ์ฃผ์ธ์:
while๋ฌธ์ ๋งจ ์ฒ์์ผ๋ก ๋์๊ฐ๊ธฐ
- while๋ฌธ์ ๋งจ ์ฒ์(์กฐ๊ฑด๋ฌธ)์ผ๋ก ๋ค์ ๋์๊ฐ๊ฒ ๋ง๋ค๊ณ ์ถ์ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ๊ฒ ๋จ
- ์ด๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก
continue
๋ฌธ
- ์ด๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก
- 1๋ถํฐ 10๊น์ง์ ์ซ์ ์ค์์ ํ์๋ง ์ถ๋ ฅํ๋ while๋ฌธ
>>> a = 0
>>> while a < 10:
... a = a + 1
... if a % 2 == 0: continue
... print(a)
...
1
3
5
7
9
๋ฌดํ ๋ฃจํ(Loop)
-
๋ฌดํ ๋ฃจํ๋ ๋ฌดํํ ๋ฐ๋ณตํ๋ค๋ ์๋ฏธ
-
while
๋ฌธ์ ๋ฌดํ ๋ฃจํ์ ๊ธฐ๋ณธ ํํ
while True:
์ํํ ๋ฌธ์ฅ1
์ํํ ๋ฌธ์ฅ2
...
while
๋ฌธ์ ์กฐ๊ฑด๋ฌธ์ด True์ด๋ฏ๋ก ํญ์ ์ฐธ- ๋ฐ๋ผ์
while
๋ฌธ ์์ ์๋ ๋ฌธ์ฅ๋ค์ ๋ฌดํํ๊ฒ ์ํ๋จ
- ๋ฐ๋ผ์
>>> while True:
... print("Ctrl+C๋ฅผ ๋๋ฌ์ผ while๋ฌธ์ ๋น ์ ธ๋๊ฐ ์ ์์ต๋๋ค.")
...
Ctrl+C๋ฅผ ๋๋ฌ์ผ while๋ฌธ์ ๋น ์ ธ๋๊ฐ ์ ์์ต๋๋ค.
Ctrl+C๋ฅผ ๋๋ฌ์ผ while๋ฌธ์ ๋น ์ ธ๋๊ฐ ์ ์์ต๋๋ค.
Ctrl+C๋ฅผ ๋๋ฌ์ผ while๋ฌธ์ ๋น ์ ธ๋๊ฐ ์ ์์ต๋๋ค.
....
3-3. for ๋ฌธ
for๋ฌธ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
- for๋ฌธ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
for ๋ณ์ in ๋ฆฌ์คํธ(๋๋ ํํ, ๋ฌธ์์ด):
์ํํ ๋ฌธ์ฅ1
์ํํ ๋ฌธ์ฅ2
...
- ๋ฆฌ์คํธ๋ ํํ, ๋ฌธ์์ด์ ์ฒซ ๋ฒ์งธ ์์๋ถํฐ ๋ง์ง๋ง ์์๊น์ง ์ฐจ๋ก๋ก ๋ณ์์ ๋์ ๋์ด โ์ํํ ๋ฌธ์ฅ1โ, โ์ํํ ๋ฌธ์ฅ2โ ๋ฑ์ด ์ํ๋จ
์์ ๋ฅผ ํตํด for๋ฌธ ์ดํดํ๊ธฐ
1. ์ ํ์ ์ธ for๋ฌธ
>>> test_list = ['one', 'two', 'three']
>>> for i in test_list:
... print(i)
...
one
two
three
['one', 'two', 'three']
๋ฆฌ์คํธ์ ์ฒซ ๋ฒ์งธ ์์์ธ โoneโ์ด ๋จผ์ i ๋ณ์์ ๋์ ๋ ํprint(i)
๋ฌธ์ฅ์ ์ํ- ๋ค์์ ๋ ๋ฒ์งธ ์์ โtwoโ๊ฐ i ๋ณ์์ ๋์
๋ ํ
print(i)
๋ฌธ์ฅ์ ์ํํ๊ณ ๋ฆฌ์คํธ์ ๋ง์ง๋ง ์์๊น์ง ์ด๊ฒ์ ๋ฐ๋ณตํจ
2. ๋ค์ํ for๋ฌธ์ ์ฌ์ฉ
>>> a = [(1,2), (3,4), (5,6)]
>>> for (first, last) in a:
... print(first + last)
...
3
7
11
- a ๋ฆฌ์คํธ์ ์์๊ฐ์ด ํํ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๊ฐ์ ์์๊ฐ ์๋์ผ๋ก (first, last) ๋ณ์์ ๋์
3. for๋ฌธ์ ์์ฉ
"์ด 5๋ช
์ ํ์์ด ์ํ์ ๋ณด์๋๋ฐ ์ํ ์ ์๊ฐ 60์ ์ด ๋์ผ๋ฉด ํฉ๊ฒฉ์ด๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ถํฉ๊ฒฉ์ด๋ค. ํฉ๊ฒฉ์ธ์ง ๋ถํฉ๊ฒฉ์ธ์ง ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ ์ฃผ์์ค."
marks = [90, 25, 67, 45, 80]
- ์ ์๋ฅผ ์ฐจ๋ก๋ก ๊ฒ์ฌํด์ ํฉ๊ฒฉํ๋์ง ๋ถํฉ๊ฒฉํ๋์ง ํต๋ณดํด ์ฃผ๋ ํ๋ก๊ทธ๋จ
# marks1.py
marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
number = number +1
if mark >= 60:
print("%d๋ฒ ํ์์ ํฉ๊ฒฉ์
๋๋ค." % number)
else:
print("%d๋ฒ ํ์์ ๋ถํฉ๊ฒฉ์
๋๋ค." % number)
- ๊ฐ๊ฐ์ ํ์์๊ฒ ๋ฒํธ๋ฅผ ๋ถ์ฌ ์ฃผ๊ธฐ ์ํด number ๋ณ์๋ฅผ ์ฌ์ฉ
- ์ ์ ๋ฆฌ์คํธ marks์์ ์ฐจ๋ก๋ก ์ ์๋ฅผ ๊บผ๋ด์ด mark๋ผ๋ ๋ณ์์ ๋์ ํ๊ณ for๋ฌธ ์์ ๋ฌธ์ฅ๋ค์ ์ํ
-
for๋ฌธ์ด ํ ๋ฒ์ฉ ์ํ๋ ๋๋ง๋ค number๋ 1์ฉ ์ฆ๊ฐํจ
- ์ด ํ๋ก๊ทธ๋จ์ ์คํํ๋ฉด mark๊ฐ 60 ์ด์์ผ ๋ ํฉ๊ฒฉ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๊ณ 60์ ๋์ง ์์ ๋ ๋ถํฉ๊ฒฉ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅ
C:\doit>python marks1.py
1๋ฒ ํ์์ ํฉ๊ฒฉ์
๋๋ค.
2๋ฒ ํ์์ ๋ถํฉ๊ฒฉ์
๋๋ค.
3๋ฒ ํ์์ ํฉ๊ฒฉ์
๋๋ค.
4๋ฒ ํ์์ ๋ถํฉ๊ฒฉ์
๋๋ค.
5๋ฒ ํ์์ ํฉ๊ฒฉ์
๋๋ค.
for๋ฌธ๊ณผ continue
- while๋ฌธ์์ ์ดํด๋ณธ
continue
๋ฌธ์ for๋ฌธ์์๋ ์ฌ์ฉํ ์ ์์- for๋ฌธ ์์ ๋ฌธ์ฅ์ ์ํํ๋ ๋์ค์
continue
๋ฌธ์ ๋ง๋๋ฉด for๋ฌธ์ ์ฒ์์ผ๋ก ๋์๊ฐ๊ฒ ๋จ
- for๋ฌธ ์์ ๋ฌธ์ฅ์ ์ํํ๋ ๋์ค์
- 60์ ์ด์์ธ ์ฌ๋์๊ฒ๋ ์ถํ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ๋๋จธ์ง ์ฌ๋์๊ฒ๋ ์๋ฌด ๋ฉ์์ง๋ ์ ํ์ง ์๋ ํ๋ก๊ทธ๋จ
# marks2.py
marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
number = number +1
if mark < 60:
continue
print("%d๋ฒ ํ์ ์ถํํฉ๋๋ค. ํฉ๊ฒฉ์
๋๋ค. " % number)
- ์ ์๊ฐ 60์ ์ดํ์ธ ํ์์ผ ๊ฒฝ์ฐ์๋
mark < 60
์ด ์ฐธ์ด ๋์ด continue๋ฌธ์ด ์ํ๋จ- ์ถํ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ ๋ถ๋ถ์ธ print๋ฌธ์ ์ํํ์ง ์๊ณ for๋ฌธ์ ์ฒ์์ผ๋ก ๋์๊ฐ๊ฒ๋จ
C:\doit>python marks2.py
1๋ฒ ํ์ ์ถํํฉ๋๋ค. ํฉ๊ฒฉ์
๋๋ค.
3๋ฒ ํ์ ์ถํํฉ๋๋ค. ํฉ๊ฒฉ์
๋๋ค.
5๋ฒ ํ์ ์ถํํฉ๋๋ค. ํฉ๊ฒฉ์
๋๋ค.
for๋ฌธ๊ณผ ํจ๊ป ์์ฃผ ์ฌ์ฉํ๋ range ํจ์
- for๋ฌธ์ ์ซ์ ๋ฆฌ์คํธ๋ฅผ ์๋์ผ๋ก ๋ง๋ค์ด ์ฃผ๋
range()
ํจ์์ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ - ๋ค์์
range()
ํจ์์ ๊ฐ๋จํ ์ฌ์ฉ๋ฒ
>>> a = range(10)
>>> a
range(0, 10)
-
range(10)
์ 0๋ถํฐ 10 ๋ฏธ๋ง์ ์ซ์๋ฅผ ํฌํจํ๋ range ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ค -
์์ ์ซ์์ ๋ ์ซ์๋ฅผ ์ง์ ํ๋ ค๋ฉด
range(์์ ์ซ์, ๋ ์ซ์)
ํํ๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด๋ ๋ ์ซ์๋ ํฌํจ๋์ง ์์
>>> a = range(1, 11)
>>> a
range(1, 11)
range ํจ์์ ์์ ์ดํด๋ณด๊ธฐ
- for์ range ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด 1๋ถํฐ 10๊น์ง ๋ํ๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ด ์ฝ๊ฒ ๊ตฌํํ ์ ์์
>>> add = 0
>>> for i in range(1, 11):
... add = add + i
...
>>> print(add)
55
range(1, 11)
์ ์ซ์ 1๋ถํฐ 10๊น์ง(1 ์ด์ 11 ๋ฏธ๋ง)์ ์ซ์๋ฅผ ๋ฐ์ดํฐ๋ก ๊ฐ๋ ๊ฐ์ฒด-
i ๋ณ์์ ๋ฆฌ์คํธ์ ์ซ์๊ฐ 1๋ถํฐ 10๊น์ง ํ๋์ฉ ์ฐจ๋ก๋ก ๋์ ๋๋ฉด์
add = add + i
๋ฌธ์ฅ์ ๋ฐ๋ณต์ ์ผ๋ก ์ํํ๊ณ add๋ ์ต์ข ์ ์ผ๋ก 55๊ฐ ๋จ - ์์์ ์ด๋ณธ โ60์ ์ด์์ด๋ฉด ํฉ๊ฒฉโ์ด๋ผ๋ ๋ฌธ์ฅ์ ์ถ๋ ฅํ๋ ์์ ๋ range ํจ์๋ฅผ ์ฌ์ฉํด์ ๋ฐ๊ฟ ์ ์์
# marks3.py
marks = [90, 25, 67, 45, 80]
for number in range(len(marks)):
if marks[number] < 60:
continue
print("%d๋ฒ ํ์ ์ถํํฉ๋๋ค. ํฉ๊ฒฉ์
๋๋ค." % (number+1))
len()
ํจ์๋ ๋ฆฌ์คํธ ์์ ์์ ๊ฐ์๋ฅผ ๋๋ ค์ฃผ๋ ํจ์len(marks)
๋ 5๊ฐ ๋ ๊ฒ์ด๊ณrange(len(marks))
๋range(5)
๊ฐ ๋จ
- number ๋ณ์์๋ ์ฐจ๋ก๋ก 0๋ถํฐ 4๊น์ง์ ์ซ์๊ฐ ๋์
๋ ๊ฒ์ด๊ณ ,
marks[number]
๋ ์ฐจ๋ก๋๋ก 90, 25, 67, 45, 80 ๊ฐ์ ๊ฐ๊ฒ๋จ
for์ range๋ฅผ ์ด์ฉํ ๊ตฌ๊ตฌ๋จ
- for์ range ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์์ค ์ฝ๋ ๋จ 4์ค๋ง์ผ๋ก ๊ตฌ๊ตฌ๋จ์ ์ถ๋ ฅ
>>> for i in range(2,10): # โ ๋ฒ for๋ฌธ
... for j in range(1, 10): # โก๋ฒ for๋ฌธ
... print(i*j, end=" ")
... print('')
...
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
- โ ๋ฒ for๋ฌธ์์ 2๋ถํฐ 9๊น์ง์ ์ซ์(
range(2, 10)
)๊ฐ ์ฐจ๋ก๋ก i์ ๋์ - i๊ฐ ์ฒ์ 2์ผ ๋ โก๋ฒ for๋ฌธ์ ๋ง๋๊ฒ๋จ
-
โก๋ฒ for๋ฌธ์์ 1๋ถํฐ 9๊น์ง์ ์ซ์(
range(1, 10)
)๊ฐ j์ ๋์ ๋๊ณ ๊ทธ๋ค์ ๋ฌธ์ฅprint(i*j)
๋ฅผ ์ํ - i๊ฐ 2์ผ ๋
2*1, 2*2, 2*3, โฆ 2*9
๊น์ง ์ฐจ๋ก๋ก ์ํ๋๋ฉฐ ๊ทธ ๊ฐ์ ์ถ๋ ฅํจ - ๊ทธ๋ค์์ผ๋ก i๊ฐ 3์ผ ๋ ์ญ์ 2์ผ ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ํ๋ ๊ฒ์ด๊ณ i๊ฐ 9์ผ ๋๊น์ง ๊ณ์ ๋ฐ๋ณต๋จ
๋งค๊ฐ๋ณ์ end๋ฅผ ๋ฃ์ด ์ค ์ด์ ๋ ๋ฌด์์ผ๊น?
print(i*j, end=" ")
์ ๊ฐ์ด ๋งค๊ฐ๋ณ์end
๋ฅผ ๋ฃ์ด ์ค ์ด์ ๋ ํด๋น ๊ฒฐ๊ด๊ฐ์ ์ถ๋ ฅํ ๋ ๋ค์์ค๋ก ๋๊ธฐ์ง ์๊ณ ๊ทธ ์ค์ ๊ณ์ํด์ ์ถ๋ ฅํ๊ธฐ ์ํด์ ์ฌ์ฉ- ๊ทธ๋ค์์ ์ด์ด์ง๋
print(' ')
๋ 2๋จ, 3๋จ ๋ฑ์ ๊ตฌ๋ถํ๊ธฐ ์ํด ๋ ๋ฒ์งธ for๋ฌธ์ด ๋๋๋ฉด ๊ฒฐ๊ด๊ฐ์ ๋ค์ ์ค๋ถํฐ ์ถ๋ ฅํ๊ฒ ํด์ฃผ๋ ๋ฌธ์ฅ
๋ฆฌ์คํธ ๋ดํฌ ์ฌ์ฉํ๊ธฐ
- ๋ฆฌ์คํธ ์์ for๋ฌธ์ ํฌํจํ๋ ๋ฆฌ์คํธ ๋ดํฌ(List comprehension)๋ฅผ ์ฌ์ฉํ๋ฉด ์ข ๋ ํธ๋ฆฌํ๊ณ ์ง๊ด์ ์ธ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์์
>>> a = [1,2,3,4]
>>> result = []
>>> for num in a:
... result.append(num*3)
...
>>> print(result)
[3, 6, 9, 12]
-
์ ์์ ๋ a ๋ฆฌ์คํธ์ ๊ฐ ํญ๋ชฉ์ 3์ ๊ณฑํ ๊ฒฐ๊ณผ๋ฅผ result ๋ฆฌ์คํธ์ ๋ด๋ ์์
-
์ด๊ฒ์ ๋ฆฌ์คํธ ๋ดํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๊ฐ๋จํ ํด๊ฒฐํ ์ ์์
>>> a = [1,2,3,4]
>>> result = [num * 3 for num in a]
>>> print(result)
[3, 6, 9, 12]
- ๋ง์ฝ [1,2,3,4] ์ค์์ ์ง์์๋ง 3์ ๊ณฑํ์ฌ ๋ด๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ฆฌ์คํธ ๋ดํฌ ์์ โif ์กฐ๊ฑดโ์ ์ฌ์ฉํ ์ ์์
>>> a = [1,2,3,4]
>>> result = [num * 3 for num in a if num % 2 == 0]
>>> print(result)
[6, 12]
- ๋ฆฌ์คํธ ๋ดํฌ์ ์ผ๋ฐ ๋ฌธ๋ฒ
[ํํ์ for ํญ๋ชฉ in ๋ฐ๋ณต๊ฐ๋ฅ๊ฐ์ฒด if ์กฐ๊ฑด๋ฌธ]
- ์กฐ๊ธ ๋ณต์กํ์ง๋ง for๋ฌธ์ 2๊ฐ ์ด์ ์ฌ์ฉํ๋ ๊ฒ๋ ๊ฐ๋ฅ
[ํํ์ for ํญ๋ชฉ1 in ๋ฐ๋ณต๊ฐ๋ฅ๊ฐ์ฒด1 if ์กฐ๊ฑด๋ฌธ1
for ํญ๋ชฉ2 in ๋ฐ๋ณต๊ฐ๋ฅ๊ฐ์ฒด2 if ์กฐ๊ฑด๋ฌธ2
...
for ํญ๋ชฉn in ๋ฐ๋ณต๊ฐ๋ฅ๊ฐ์ฒดn if ์กฐ๊ฑด๋ฌธn]
- ๊ตฌ๊ตฌ๋จ์ ๋ชจ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌ์คํธ์ ๋ด๊ณ ์ถ๋ค๋ฉด ๋ฆฌ์คํธ ๋ดํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ด ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์๋ ์์
>>> result = [x*y for x in range(2,10)
... for y in range(1,10)]
>>> print(result)
[2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16,
20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42
, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72,
9, 18, 27, 36, 45, 54, 63, 72, 81]
๋๋์
- ์ ์ด๋ฌธ์์ if๋ฅผ ํตํ ์กฐ๊ฑด๋ฌธ๊ณผ while, for๋ฌธ์ ์ด์ฉํ ๋ฐ๋ณต๋ฌธ์ ํ๋ํ๋ ์ง๊ณ ๋์ด๊ฐ๋ฉด์ ๋ค์ ์ ๋ฆฌํ ์ ์์๊ณ , ๋ค๋ฅธ ์ฌ๋๋ค์ ์ฝ๋๋ฅผ ๋ณผ ๋ ์ ๊ฒ ๋ญ์ง ํ๋ ๋ถ๋ถ์ธ ๋ฆฌ์คํธ ๋ดํฌ ๋ถ๋ถ์ ์ ์ ์์ด์ ์์ผ๋ก ์ด๋ ๊ฒ ์ง๊ด์ ์ธ ์ฝ๋๋ก ์์ฑ์ ํด๋ด์ผ๊ฒ ๋ค.
- ๊ณต๋ถํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์ฝ๋ฉํ ์คํธ ๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ ๋ณด๋ฉด ์์ ์๋ ํ์๋๋ฐ ์๊ฐ ์๋๋ ๊ฒฝ์ฐ๋ ์๊ณ ๋ค๋ฅด๊ฒ ํธ๋ ๊ฒฝ์ฐ๋ ์์๋๊ฑฐ ๊ฐ๋ค ์์ผ๋ก ์๊ฐ์ ์ ๋ฆฌํ๋ ์ต๊ด์ ๊ธธ๋ฌ์ผ๊ฒ ๋ค.