while 반복문의 기본 구조는

아래와 같으며

 

 

 

while <불 표현식> :

print ( )

 

 

 

지금껏 살펴본 구문중에

구조가 if 조건문과 비슷하다.

 

 

 

if <불 표현식> :

print ( )

 

 

 

두 가지 모두

불 표현식의 조건이 참(True)일 때

해당 문장이 실행된다는 점에서

성질이 비슷한데 결정적 차이로는

 

 

 

두 가지 모두 조건이 참인 경우,

 

 

 

if 조건문은 해당 문장을

한 번만 실행하는데 비해

 

 

 

whie 반복문은 특별한 설정이

없는 한 그 이름처럼 무한정으로

반복 실행된다는점에 있다.

 

 

 

아래 위험한 예제 코드가 있다.

 

 

 

 

 

 

 

 

 

 

특별한 제약을 걸어두지 않은 채

조건이 참이면 반복해 주는

반복문에게

 

 

 

하필 그 조건으로 "참"을 부여해 주니

무한정 반복되는 코드가 실행되는 것,

 

 

 

실행을 멈추고 싶을 때는

Ctrl+F2 키를 눌러준다.

(윈도우 기준)

 

 

 

*참고로 print 내부에 (end=" ")

라는 것을 추가로 작성해 주었는데

이것은 '엔드'라는키워드 매개변수이다.

 

 

 

이 매개변수를 입력하지 않으면

출력값이 세로로 떨어지는데

end 키워드는 값을 가로로 보낸다.

 

 

 

이 부분은 나중에 다시 다루기로 하고

키워드 매개변수는 저런 식으로 작성한다

정도만 알고 넘어가자.

 

 

 

 


 

 

 

위와 같은 코드는 컴퓨터 사양에 따라

컴퓨터를 먹통으로 만드는 경우가 있으니

주의하고 이제 제약을 걸어주는 방법

살펴보자.

 

 

 

i의 숫자가 10보다 작을 때 참이라는

조건을 걸어주고, 한번 반복할 때마다

i의 값이 1씩 증가하도록 설정을 해주었다.

 

 

 

 

 

 

 

 

 


 

 

 

 

while 반복문 사용 예

 

 

 

주로for 반복문에서

사용이 안 될 것 같은 상황에서 사용한다.

 

 

 

참고로 for 반복문에서 주로 사용했던

것들로는 리스트, 딕셔너리, 특정 횟수를

반복하는 것 등이 있었다.

 

 

 

예제)

 

 

 

1. 리스트 내부의 특정 값 전부 제거하기

 

 

 

remove( ) 라는 함수를 사용하면

리스트 내의 특정 숫자를 한번

삭제할 수 있었는데

 

 

 

동일한 숫자가 여러 번 반복되는 경우

이를 모두 삭제하려면 참 번거로운

작업이 될 것이다.

 

 

 

6을 다 없애달라구

 

 

 

 

이럴 때는 remove 함수를

while 반복문 안에 넣어

조건을 부여해 주고

 

 

 

조건이 참일 때 이를 반복하여

실행해 주는 코드를 작성한다면

문제를 해결할 수 있다.

 

 

 

조건은 이렇다.

 

 

 

6이라는 숫자가 리스트에 있다면

발견되는 족족 제거한다

 

 

 

해결!

 

 

 

 

 

 

* 팁으로

print 명령을 반복문 안에 넣어

실행하면 제거 과정을 볼 수 있으니

참조하자.

 

 

 

 

 

 

 


 

 

 

 

 

2. time 모듈을 활용한 예

 

 

 

time 이란 모듈을 활용하면

1970 1월 1일 0시 0분 0초를

기준으로 현재 시간까지

얼마의 시간이 흘렀는지를

알 수 있는데

 

 

 

 

 

 

 

 

이 time 함수를 활용하면

프로그램을 일정 시간 대기 후에

실행 되도록 설정할 수가 있다.

 

 

 

 

 

 

 

 

4초간 대기한 후 실행된다.

 

 

 

 

 


 

 

 

 

 

while 반복문은 실제

 

 

어떠한 목표를 향해 계속해서

프로그램을 돌릴 때,

 

 

예로 4, 5차 방정식의

답을 찾을 때까지라던가

 

 

최적의 인공지능 상태를

구현하기 위해 기준으로 정한

오차 범위 이내로 떨어질 때까지

프로그램을 돌리는 등의

방법에 사용된다고 한다.

 

 

 

 

 

 

 

728x90

'프로그래밍 > Python' 카테고리의 다른 글

문제 풀기) 종합 문제  (0) 2020.05.26
기초) break / continue 키워드  (0) 2020.05.26
기초) range 와 반복문  (0) 2020.05.25
기초) 딕셔너리 2 (중요)  (2) 2020.05.24
기초) 딕셔너리 정리  (0) 2020.05.23

+ Recent posts