๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
python

ํŒŒ์ด์ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ•์˜/ํŒŒ์ด์ฌ ๊ธฐ์ดˆ ๋ฌธ๋ฒ• 3_๋ฐ˜๋ณต๋ฌธ(for, while, break, continue)

by aesup 2021. 9. 21.
728x90

๐Ÿงถrange( )

์ˆœ์ฐจ์ ์œผ๋กœ ์ •์ˆ˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ํ•จ์ˆ˜

'''
๋ฐ˜๋ณต๋ฌธ for while
'''

a=range(10)
# range : 0~9 ๊นŒ์ง€ ์ •์ˆ˜๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค

print(list(a))
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

a=range(1, 11)
# range : 1~10 ๊นŒ์ง€ ์ •์ˆ˜๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค

print(list(a))
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

๐Ÿงถfor range( )

for i in range(10):
    print(i)
    
    
for i in range(1 , 11):
    print(i)
# 1์”ฉ ์ž‘์•„์ง€๊ณ  ์‹ถ๋‹ค๋ฉด ์ธ์ž๋ฅผ ํ•˜๋‚˜ ๋” ๋‘ฌ์•ผํ•œ๋‹ค.
for i in range(10 , 0, -1):
    print(i)
#=>
10
9
8
7
6
5
4
3
2
1


for i in range(10 , 0, -2):
    print(i)


#=>
10
8
6
4
2

1. ์ธ์ˆ˜๊ฐ€ ํ•œ ๊ฐœ์ผ ๋•Œ - range(MAX)
0์—์„œ๋ถ€ํ„ฐ MAX - 1๊นŒ์ง€์˜ ์ˆซ์ž ์—ฐ์†๋œ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด์„œ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜ (MAX ๋ถˆํฌํ•จ!)
(0 <= x < MAX) 

2. ์ธ์ˆ˜๊ฐ€ ๋‘ ๊ฐœ์ผ ๋•Œ - range(MIN, MAX)
MIN ์—์„œ๋ถ€ํ„ฐ MAX - 1๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ์—ฐ์†๋œ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด์„œ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜ (MAX ๋ถˆํฌํ•จ.!)
(MIN <= x < MAX)

3. ์ธ์ˆ˜๊ฐ€ ์„ธ ๊ฐœ์ผ ๋•Œ - range(MIN, MAX, GAP) 
MIN์—์„œ MAX -1๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ์—ฐ์†๋œ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด ์ฃผ๋Š”๋ฐ, ๊ฐ ์ˆซ์ž๋“ค ์‚ฌ์ด์— GAP ๋งŒํผ์˜ ์ฐจ์ด๋ฅผ ๋‘๊ณ  ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค๋ฉด range(0, 10, 2)๋ผ๊ณ  ํ•œ๋‹ค๋ฉด 0, 2, 4, 6, 8์˜ ์ˆซ์ž ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. 

 

range ํ•จ์ˆ˜์—์„œ ์•Œ์•„๋‘์–ด์•ผ ํ•  ๊ฒƒ์€ ์ตœ์†Œ ๊ฐ’์ด 0์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์Œ์ˆ˜์˜ ์ˆซ์ž๋ฅผ ๋‹ค๋ฃจ์ง€๋Š” ๋ชปํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

 

๐Ÿงถwhile

i=1
while i<=10:
    print(i)
    i+=1

'''
>result
1
2
3
4
5
6
7
8
9
10
'''

i=10
while i>0:
    print(i)
    i = i-2
    
    
'''
10
8
6
4
2
'''

๐Ÿงถwhile true ๋ฌดํ•œ ๋ฃจํ”„

i = 1
while True:
    print(i)

๐Ÿงถwhile  break

๋ฐ˜๋ณต๋ฌธ์„ ๋ฉˆ์ถ”๊ณ  loop ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๋„๋ก ํ•œ๋‹ค

i = 1
while True:
    print(i)
    if i == 10:
        break
    i+=1
    
'''
>result
1
2
3
4
5
6
7
8
9
10


'''

๐Ÿงถcontinue

๋ฐ”๋กœ ๋‹ค์Œ ์ˆœ๋ฒˆ์˜ loop๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค

for i in range(1, 11):
    if i%2==0:
        continue # ๋‹ค์Œ์œผ๋กœ ์ง€๋‚˜๊ฐ
    print(i)
    
 '''
 >result
1
3
5
7
9
 '''

์œ„ ์กฐ๊ฑด๋Œ€๋กœ i ๊ฐ€ ์ง์ˆ˜์ผ๋•Œ๋Š” continue๋กœ ์ธํ•ด ๋‹ค์Œ ๋ฃจํ”„๋กœ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— print(2) ์ฒ˜๋Ÿผ ์ง์ˆ˜๊ฐ€ ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š”๋‹ค

๐Ÿงถfot ~ else

import random
lucky_num = random.randint(1, 100)

print(f"lucky_num is {lucky_num}")

 for i in range(10):
 num = random.randint(1, 100)
     if num == lucky_num:
         print(f"Success")
         break
     if i == 9: # 9๋ฒˆ๊นŒ์ง€ ๊ฐ”์„๋• ์•„์ง ๋„˜๋ฒ„์™€ ๋ „ํ‚ค๋„˜๋ฒ„๊ฐ€ ์•ˆ๋˜์žˆ์Œ
         print("Fail")

(3) 1๋ถ€ํ„ฐ 100์‚ฌ์ด์˜ ์ˆซ์ž ์ค‘ ํ•˜๋‚˜๋ฅผ ๋žœ๋ค์œผ๋กœ ์ƒ์„ฑํ•ด ‘lucky_num’ ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•œ๋‹ค.

(6~7) loop๋ฅผ 10๋ฒˆ ๋Œ๋ฉด์„œ ๋žœ๋ค์œผ๋กœ 1๋ถ€ํ„ฐ 100 ์‚ฌ์ด์˜ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

(8~10) ๋งŒ์•ฝ ๋žœ๋ค์œผ๋กœ ์ƒ์„ฑ๋œ ์ˆซ์ž๊ฐ€ lucky_num๊ณผ ๊ฐ™๋‹ค๋ฉด, “Success”๋ฅผ ์ถœ๋ ฅ, loop๋ฅผ ๋ฉˆ์ถ”๊ณ  ๋น ์ ธ๋‚˜์˜จ๋‹ค.

(11~12) lucky_num๊ณผ ๊ฐ™์€ ์ˆซ์ž๊ฐ€ ํ•œ ๋ฒˆ๋„ ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด, “Fail” ์„ ์ถœ๋ ฅํ•œ๋‹ค.

์œ„์˜ ์ฝ”๋“œ๋ฅผ for ~ else ํ˜•์‹์œผ๋กœ ๋ฐ”๊พธ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 import random

 lucky_num = random.randint(1, 100)
 print(f"lucky_num is {lucky_num}")

 for _ in range(10):
     num = random.randint(1, 100)
     if num == lucky_num:
         print(f"Success")
         break
 else:
     print("Fail")

for๋ฌธ ์•ˆ์—์„œ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋ฅผ ํ™•์ธํ•˜๋˜ ์ ˆ์ฐจ๊ฐ€ ์‚ฌ๋ผ์กŒ๋‹ค. (๊ธฐ์กด ์ฝ”๋“œ์˜ 11๋ฒˆ์งธ ๋ถ€๋ถ„)

๋Œ€์‹  for๋ฌธ ๋ฐ”๊นฅ์ชฝ์— else๋ฌธ์„ ์ถ”๊ฐ€ํ•ด์„œ, break๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์„๋•Œ์˜ ๋™์ž‘์— ๋Œ€ํ•ด ๊ธฐ์ˆ ํ–ˆ๋‹ค.

์ฆ‰, for ~ else๋ฌธ์€ “for๋ฌธ์—์„œ break๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ”์˜ ๋™์ž‘์„ else๋ฌธ์— ์ ์–ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

for๋ฌธ ์•ˆ์—์„œ break๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด 11~12๋ฒˆ์งธ ์ค„์˜ else๋ฌธ์€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.

728x90