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์—์„œ ๋ณ€์ˆ˜๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ
>>> 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๋ฌธ์˜ ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ€๊ฒŒ ๋จ
  • 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๋ฌธ์„ ์ด์šฉํ•œ ๋ฐ˜๋ณต๋ฌธ์„ ํ•˜๋‚˜ํ•˜๋‚˜ ์ง‘๊ณ  ๋„˜์–ด๊ฐ€๋ฉด์„œ ๋‹ค์‹œ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ์ฝ”๋“œ๋ฅผ ๋ณผ ๋•Œ ์ €๊ฒŒ ๋ญ์ง€ ํ–ˆ๋˜ ๋ถ€๋ถ„์ธ ๋ฆฌ์ŠคํŠธ ๋‚ดํฌ ๋ถ€๋ถ„์„ ์•Œ ์ˆ˜ ์žˆ์–ด์„œ ์•ž์œผ๋กœ ์ด๋ ‡๊ฒŒ ์ง๊ด€์ ์ธ ์ฝ”๋“œ๋กœ ์ž‘์„ฑ์„ ํ•ด๋ด์•ผ๊ฒ ๋‹ค.
  • ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๊ฐ€ ๋ณด๋ฉด ์˜ˆ์ „์—๋Š” ํ’€์—ˆ๋Š”๋ฐ ์ƒ๊ฐ ์•ˆ๋‚˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณ  ๋‹ค๋ฅด๊ฒŒ ํ‘ธ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์—ˆ๋˜๊ฑฐ ๊ฐ™๋‹ค ์•ž์œผ๋กœ ์ƒ๊ฐ์„ ์ •๋ฆฌํ•˜๋Š” ์Šต๊ด€์„ ๊ธธ๋Ÿฌ์•ผ๊ฒ ๋‹ค.

reference

์ ํ”„ ํˆฌ ํŒŒ์ด์ฌ