
๋ฐ๋ณต๋ฌธ์ ๋์ผํ ์์ ์ ์ฌ๋ฌ ๋ฒ ์คํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ ์ด ๊ตฌ์กฐ์ด๋ค. ์ฃผ๋ก for๋ฌธ๊ณผ while๋ฌธ์ด ์ฌ์ฉ๋๋ฉฐ, ๊ฐ๊ฐ์ ๋ฐ๋ณต๋ฌธ์ ๋ค๋ฅธ ์ํฉ์ ์ ํฉํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ๋๋ค.
while ๋ฌธ์ ํน์ ์กฐ๊ฑด์ด ์ฐธ์ธ ๋์ ๋ฐ๋ณต์ ์ผ๋ก ์ฝ๋ ๋ธ๋ก์ ์คํํ๋ ์ ์ด ๊ตฌ์กฐ์ด๋ค. while ๋ฌธ์ ์ฃผ์ด์ง ์กฐ๊ฑด์ด ์ฐธ์ธ ๋์ ๋ฐ๋ณต์ ์ผ๋ก ์ฝ๋๋ฅผ ์คํํ๋ฉฐ, ์กฐ๊ฑด์ด ๊ฑฐ์ง์ด ๋๋ฉด ๋ฐ๋ณต์ ๋ฉ์ถ๋ค.
while ๋ฌธ์ ํ์์ ๋ค์๊ณผ ๊ฐ๋ค.
while ์กฐ๊ฑด:
# ์กฐ๊ฑด์ด ์ฐธ์ธ ๋์ ์คํ๋ ์ฝ๋
i = 1
while i <= 5:
print('Hello Python')
i += 1 # i = i + 1
> Hello Python
> Hello Python
> Hello Python
> Hello Python
> Hello Python
# 1๋ถํฐ 10๊น์ง์ ์ดํฉ
i = 1
sum = 0
while i <= 10:
sum += i
i += 1
print(f'1๋ถํฐ 10๊น์ง์ ํฉ: {sum}')
> 1๋ถํฐ 10๊น์ง์ ํฉ: 55
for ๋ฌธ์ ์ํ์ค(๋ฆฌ์คํธ, ํํ, ๋ฌธ์์ด)์ ๊ฐ ํญ๋ชฉ๋ค์ ๋ํด ๋ฐ๋ณต ์์ ์ ์ํํ๋ ๋ฐ๋ณต๋ฌธ์ด๋ค. for๋ฌธ์ ์ฃผ๋ก ์ง์ ๋ ๋ฒ์ ๋ด์์ ๋ฐ๋ณตํ ๋ ์ฌ์ฉ๋๋ค. ์ฆ, ๋ฐ๋ณตํ ์์๋ค์ด ๋ฏธ๋ฆฌ ์ ํด์ ธ ์๋ ๊ฒฝ์ ์ ์ฉํ๋ค.
for ๋ฌธ์ ํ์์ ๋ค์๊ณผ ๊ฐ๋ค.
for ์์ in ์ํ์ค:
# ์์์ ๋ํ ์์
์ํ
list1 = [10, 20, 30, 40]
for li in list1:
print(li)
> 10
> 20
> 30
> 40
range() ํจ์๋ ํ์ด์ฌ์์ ์์ฐจ์ ์ธ ์ ์์ ์ํ์ค๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ด์ฅ ํจ์์ด๋ค. ์ฃผ๋ก for ๋ฌธ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ฉฐ, ์ผ์ ํ ๋ฒ์ ๋ด์์ ๋ฐ๋ณต ์์ ์ ์ํํ ๋ ์ ์ฉํ๊ฒ ํ์ฉ๋๋ค. range() ํจ์์ ๊ฒฐ๊ณผ๋ก ์์ฑ๋๋ ์์ฐจ์ ์ธ ์ ์ ์ํ์ค๋ ์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋์ง ์๊ณ ํ์ํ ๋๋ง๋ค ์์ฑ๋๋ฏ๋ก, ํฐ ๋ฒ์์ ๋ฐ๋ณต๋ฌธ์๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
range()์ ํ์์ ๋ค์๊ณผ ๊ฐ๋ค.
range(start, stop, step)
num = range(1, 11, 1)
print(num)
> range(1, 11)
for i in num:
print(i, end = ' ')
> 1 2 3 4 5 6 7 8 9 10
for i in range(1, 11, 1):
print(i, end = ' ')
> 1 2 3 4 5 6 7 8 9 10
#step ์๋ต ๊ฐ๋ฅ. ๊ธฐ๋ณธ๊ฐ 1
for i in range(1, 11):
print(i, end = ' ')
> 1 2 3 4 5 6 7 8 9 10
# start ์๋ต ๊ฐ๋ฅ. ๊ธฐ๋ณธ๊ฐ 0
for i in range(11):
print(i, end = ' ')
> 0 1 2 3 4 5 6 7 8 9 10
enumerate() ํจ์๋ ํ์ด์ฌ์์ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ ๋ ์ธ๋ฑ์ค๋กธ ๊ฐ์ ํจ๊ป ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ด์ฅ ํจ์์ด๋ค. ์ฃผ๋ก for ๋ฌธ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ฉฐ, ๋ฐ๋ณต๋ฌธ ๋ด์์ ์์๋ฅผ ์ถ์ ํ๋ฉด์ ๊ฐ๊ณผ ํด๋น ๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ํจ๊ป ์ฌ์ฉํ ๋ ์ ์ฉํ๋ค. enumerate() ํจ์๋ (์ธ๋ฑ์ค, ๊ฐ)์ ํํ์ ๋ฐํํ๋ ์ดํฐ๋ ์ดํฐ(iterator)๋ฅผ ์์ฑํ๋ค.
enumerate()์ ํ์์ ๋ค์๊ณผ ๊ฐ๋ค.
enumerate(iterable, start = 0)
list1 = [10, 20, 30, 40]
# in๊ณผ ์ ์ฌํ์ง๋ง, ์ธ๋ฑ์ค์ ํจ๊ป ํํ ํ์์ผ๋ก ์ถ๋ ฅ๋จ
for e in enumerate(list1, 0):
print(e)
> (0, 10)
> (1, 20)
> (2, 30)
> (3, 40)
list1 = [10, 20, 30, 40]
# ์ธ๋ฑ์ค ๋ฒํธ 10๋ถํฐ ์์
for e in enumerate(list1, 10):
print(e)
> (10, 10)
> > (11, 20)
> (12, 30)
> (13, 40)
list1 = [10, 20, 30, 40]
# start ์๋ต ์ 0๋ถํฐ
for e in enumerate(list1):
print(e)
> (0, 10)
> (1, 20)
> (2, 30)
> (3, 40)
list1 = [10, 20, 30, 40]
# (0, 10)
# i, v = (0, 10)
for i, v in enumerate(list1):
print(f'์ธ๋ฑ์ค:{i}, ๊ฐ:{v}')
> ์ธ๋ฑ์ค:0, ๊ฐ:10
> ์ธ๋ฑ์ค:1, ๊ฐ:20
> ์ธ๋ฑ์ค:2, ๊ฐ:30
> ์ธ๋ฑ์ค:3, ๊ฐ:40
zip() ํจ์๋ ํ์ด์ฌ์์ ์ฌ๋ฌ ๊ฐ์ ๋ฐ๋ณต ๊ฐ๋ฅํ(iterable) ๊ฐ์ฒด๋ฅผ ๋ณ๋ ฌ์ ์ผ๋ก ๋ฌถ์ด์ฃผ๋ ๋ด์ฅ ํจ์์ด๋ค. ๊ฐ ๊ฐ์ฒด๋ก๋ถํฐ ์์๋๋ก ํ๋์ ์์์ฉ ๊ฐ์ ธ์ ํํ๋ก ๋ฌถ์ด์ฃผ๋ ์ดํฐ๋ ์ดํฐ๋ฅผ ๋ฐํํ๋ค. ์ฃผ๋ก ์ฌ๋ฌ ๊ฐ์ ๋ฆฌ์คํธ๋ ํํ์ ๋ณ๋ ฌ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ ์ ํ ๋ ์ฌ์ฉ๋๋ค.
zip()์ ํ์์ ๋ค์๊ณผ ๊ฐ๋ค.
zip(iterable1, iterable2, ...)
li1 = [10, 20, 30]
li2 = ['์ ๋ฏผ์ฝฉ', '์ ํ์ฝฉ', '์ํ์ฝฉ']
for i in range(0, 3):
print(li1[i], li2[i])
> 10 ์ ๋ฏผ์ฝฉ
> 20 ์ ํ์ฝฉ
> 30 ์ํ์ฝฉ
# li1์ ๊ธธ์ด๊ฐ ๋ณํด๋ ์ฝ๋ ์์ ํ ํ์X
for i in range(len(li1)):
print(li1[i], li2[i])
> 10 ์ ๋ฏผ์ฝฉ
> 20 ์ ํ์ฝฉ
> 30 ์ํ์ฝฉ
li1 = [10, 20, 30, 40, 50]
li2 = ['์ ๋ฏผ์ฝฉ', '์ ํ์ฝฉ', '์ํ์ฝฉ', '์ ๋น์ฝฉ']
for i in range(len(li1)):
print(li1[i], li2[i])
> IndexError: list index out of range
# li2์ ๊ธธ์ด๊ฐ li1์ ๊ธธ์ด๋ฅผ ๋ฒ์ด๋ ์ธ๋ฑ์ค ์๋ฌ๊ฐ ๋ธ
li1 = [10, 20, 30]
li2 = ['์ ๋ฏผ์ฝฉ', '์ ํ์ฝฉ', '์ํ์ฝฉ']
for l1, l2 in zip(li1, li2):
print(l1, l2)
> 10 ์ ๋ฏผ์ฝฉ
> 20 ์ ํ์ฝฉ
> 30 ์ํ์ฝฉ
li1 = [10, 20, 30]
li2 = ['์ ๋ฏผ์ฝฉ', '์ ํ์ฝฉ', '์ํ์ฝฉ']
# ํ๋๋ก ๋ฌถ์๊ธฐ ๋๋ฌธ์ ํํ๋ก ์ถ๋ ฅ
for li in zip(li1, li2):
print(li)
> (10, '์ ๋ฏผ์ฝฉ')
> (20, '์ ํ์ฝฉ')
> (30, '์ํ์ฝฉ')
li1 = [10, 20, 30, 40, 50]
li2 = ['์ ๋ฏผ์ฝฉ', '์ ํ์ฝฉ', '์ํ์ฝฉ', '์ ๋น์ฝฉ']
# ์งง์ ๊ธธ์ด๊น์ง๋ง ๋
for i in zip(li1, li2):
print(i)
> (10, '์ ๋ฏผ์ฝฉ')
> (20, '์ ํ์ฝฉ')
> (30, '์ํ์ฝฉ')
> (40, '์ ๋น์ฝฉ')
for n, A, a in zip('12345', 'ABCDE', 'abcde'):
print(n, A, a)
> 1 A a
> 2 B b
> 3 C c
> 4 D d
> 5 E e
ํ์ด์ฌ์์ ์ค์ฒฉ๋ ๋ฐ๋ณต๋ฌธ์ ํ๋์ ๋ฐ๋ณต๋ฌธ ์์ ๋ค๋ฅธ ๋ฐ๋ณต๋ฌธ์ด ํฌํจ๋ ๊ตฌ์กฐ๋ฅผ ์๋ฏธํ๋ค. ์ค์ฒฉ ๋ฐ๋ณต๋ฌธ์ ์ธ๋ถ ๋ฐ๋ณต๋ฌธ์ ๊ฐ ๋ฐ๋ณต๋ง๋ค ๋ด๋ถ ๋ฐ๋ณต๋ฌธ์ด ๋ชจ๋ ์คํ๋๋ ๋ฐฉ์์ผ๋ก ์๋ํ๋ค. ์ด๋ฅผ ํตํด ๋ค์ฐจ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ฑฐ๋ ๋ณต์กํ ์์ ์ ์ํํ ์ ์๋ค.
์ค์ฒฉ ๋ฐ๋ณต๋ฌธ์ ํ์์ ๋ค์๊ณผ ๊ฐ๋ค.
for ์ธ๋ถ_๋ณ์ in ์ธ๋ถ_์ํ์ค:
for ๋ด๋ถ_๋ณ์ in ๋ด๋ถ_์ํ์ค:
# ๋ด๋ถ ๋ฐ๋ณต๋ฌธ ์ฝ๋
# ์ธ๋ถ ๋ฐ๋ณต๋ฌธ ์ฝ๋
for i in range(1, 4):
print(f'๐ i:{i}')
for j in range(1, 4):
print(f'๐ j:{j}')
> ๐ i:1
> ๐ j:1
> ๐ j:2
> ๐ j:3
> ๐ i:2
> ๐ j:1
> ๐ j:2
> ๐ j:3
> ๐ i:3
> ๐ j:1
> ๐ j:2
> ๐ j:3