๐งถ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๋ฌธ์ ์คํ๋์ง ์๋๋ค.