반복적인 작업을 위해 사용합니다. 크롤링에 사용합니다.
문법
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 true : www.w3schools.com/python/python_while_loops.asp
무한루프
<조건>이 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)
'데이터 분석 > python' 카테고리의 다른 글
[Python] 정규표현식 기초 (0) | 2021.01.27 |
---|---|
[Python] zip() 함수, 사용 예제 (0) | 2020.12.10 |
anaconda3 전체 경로에서 사용하기 (command not found: jupyter) (1) | 2020.11.13 |