Loops and Iterations - For/While Loops
num_list = [1,2,3,4,5]
for num in num_list:
if num == 3:
print('found!')
break
print(num)
# 1
# 2
# found!
위의 코드를 보면, 출력값이 마치 1,2,3, 그리고 found! 일 것 같지 않은가? num 이 3이되면 멈추고 found! 를 출력하고 break 하라고 보인다.
그런데 잘 생각해보면, num 이 3이 되면(if) found! 를 출력 한 뒤에서야 num 이 출력된다.
1,2 일때는 if num==3 이 충족되지 않으므로, found! 가 출력되지않고
if 문을 나가서 print(num)이 그대로 실행되었다.
그래서 1,2, found! 까지만 출력이 된다. 3번째 print(num) 이 실행되지 않았다.
num_list = [1,2,3,4,5]
for num in num_list:
if num == 3:
print('found!')
continue
print(num)
# 1
# 2
# found!
# 4
# 5
같은 코드를 break -> continue 로 변경하였다.
차이점은 무엇일까?
1,2 까지 출력되고, 3 일때는 if를 충족하므로 found!가 프린트된다.
print(num)을 실행하지않고, 바로 다음 interaion 인 for로 나와버렸다!
파이썬도 다른 언어와 비슷하게 for 과 while 로 반복문을 작성한다.
for 은 범위를 지정하기 위해 in range() 와 으레 함께 쓴다.
for i in range(1,11)
print(i)
# 1~10까지 출력된다.
range() 도 메소드이다.
range( 첫번째인자는 시작값이다, 두번째인자는 이 미만까지.)
while 은 뒤에오는 조건을 만족할경우 실행한다. True 로 설정시 loop 안의 내용을 무조건 실행한다.
n=0
while True:
print(n)
n += 1
# 0부터 무한루프. ctrl+c 로 break.
nums=[1,2,3,4,5]
for num in nums:
for letter in 'abc':
print(num, letter)
# 1a / 1b/ 1c
# 2a / 2b/ 2c
nested loops 는 주의해서 봐야한다.
먼저 바깥쪽 loop에서 첫번째 원소가 걸리면, 안쪽의 loop 가 다 돌아야지, 다시 바깥쪽의 loop 가 진행된다.