데이터 분석/python

[python] while문 break와 continue 활용 예제

참치바나나 2020. 12. 1. 16:15

반복적인 작업을 위해 사용합니다. 크롤링에 사용합니다. 

문법

while <조건> :
	<실행하려는 코드>

- <조건 : condition>이 True 면 계속 실행합니다. False가 되면 실행하지 않습니다.

- 꼭 들여쓰기를 해야합니다. 안하면 while에 포함되지 않습니다.

 

예제

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

해석 : 

i<6 인가? i = 1이므로 실행한다. print(i)를 한다. (1이 출력된다) i 에 1을 더한다. (i == 2 이다)

i<6 인가? i = 2이므로 실행한다. print(i)를 한다. (2가 출력된다) i 에 1을 더한다. (i == 3 이다)

i<6 인가? i = 3이므로 실행한다. print(i)를 한다. (3이 출력된다) i 에 1을 더한다. (i == 4 이다)

i<6 인가? i = 4이므로 실행한다. print(i)를 한다. (4가 출력된다) i 에 1을 더한다. (i == 5 이다)

i<6 인가? i = 5이므로 실행한다. print(i)를 한다. (5가 출력된다) i 에 1을 더한다. (i == 6 이다)

i<6 인가? i = 6이므로 실행되지 않는다. 

 

출처 :

execute a set of statements as long as a condition is truewww.w3schools.com/python/python_while_loops.asp

 

Python While Loops

Python While Loops Python Loops Python has two primitive loop commands: The while Loop With the while loop we can execute a set of statements as long as a condition is true. Example Print i as long as i is less than 6: i = 1 while i < 6:   print(i)   i

www.w3schools.com

 

무한루프

<조건>이 True 면 계속 실행합니다. 따라서 이런 것도 가능합니다.

 

while True :
	print('hi')

이럴 경우 문제가 생깁니다. jupyter notebook 에서 [*] 이 뜨면서 멈추는 현상이 발생합니다. 

 

jupyter notebook 무한루프 멈춤 풀기 :

위에 메뉴바에서 Kernel > Interrupt 누르면 됩니다. Restart 해도 됩니다.

 

break

while문에서 나오는 수단으로 사용합니다. 조건문 안에서 사용합니다. 

따라서 조건문에 루프를 끝내야 하는 상황(조건)을 생각하여 넣습니다.

a = [123, 20, 87, 4, 2, 46]

i = 0
while i  < len(a) :
    if a[i] < 20: #루프를 끝내야하는 조건
        break
        
    print(a[i])
    
    i += 1
print('ajja')

출력은 어떻게 나올까요?

a[i]의 값이 20보다 작을 때 while문을 종료합니다. 즉, 임의로 condition == False 로 만든 것과 같습니다.

 

continue

특정한 경우에, while 문 내의 남은 코드를 실행하지 않고 다시 새로운 반복을 하기 위해 사용합니다.

 

 

예제 : 1~100 까지 수 중 5의 배수를 빼고 전부 더한 합은?

생각생각생각생각

5의 배수 :

num % 5 == 0

 

10까지 더하기 :

_sum,num = 0,0
while num <= 10:  
    _sum += num
    num += 1    
print(_sum)
_sum,num = 0,0
while num < 10:
    num += 1       
    _sum += num 
print(_sum)

결과는 같다.

num += 1 이 continue보다 아래에 있으면 무한루프가 생긴다

num의 숫자가 오르지 않고 계속 끝나버리기 때문.

_sum,num = 0,0
while num < 100:
    num += 1
    if num % 5 == 0:
        continue
    _sum += num
print(_sum)