본문 바로가기

Data Scientist

파이썬( while 반복문)

반응형

while반복문

리스트 또는 딕셔너리 내부의 요소를 모두 순회하는 경우, 즉 특정 횟수만큼 반복하는 경우에는 for 반복문을 사용하지만 while 반복문 또한 존재한다. 

# 기본 형태
while Boolean 표현식:
	문장

무한 반복문

while True:
	# '.'을 출력
    # 기본적으로 end가 '\n'이라 줄바꿈이 일어나는데
    # 빈 문자열 ''로 바꿔서 줄바꿈이 일어나지 않게 한다.
	print('.', end='')

실행하면 무한하게 ' . '이 출력되게 되는데 프로그램이 종료되지 않는다. 일반적으로 윈도우 사용시 파워쉘이나 프롬프트 창에서 실행하고, 맥에서는 터미널에서 해보는 것을 권장한다. Ctrl + C를 눌러서 종료해준다. 

 

while 반복문을 for 반복문처럼 사용하기 

i = 0
while i < 10:
    print('{}번째 반복입니다'.format(i))
    i = i+1 # 안넣어주면 계속 0으로 무한 반복된다.
    #  i += 1 과 같다.
    
    
0번째 반복입니다
1번째 반복입니다
2번째 반복입니다
3번째 반복입니다
4번째 반복입니다
5번째 반복입니다
6번째 반복입니다
7번째 반복입니다
8번째 반복입니다
9번째 반복입니다

for 반복문으로는 무한 반복을 구현할 수 없다. while 반복문에서 가장 중요한 키워드는 '조건'이다. 조건을 반복해서 사용해야 한다면 while을 사용하는 것이 좋다. 

 

while 반복문: 상태를 기반으로 반복하기 

리스트의 remover( ) 함수는 리스트 내부에서 해당하는 값을 하나만 제거할 수 있었지만 while 반복문을 활용하면 여러 개를 제거할 수 있다. while 반복문의 조건을 '리스트 내부에 요소가 있는 동안'으로 지정한다. 

# 변수를 선언
list_test = [1, 2, 1, 2]
value = 2

# list_test 내부에 value가 있다면 반복
while value in list_test:
    list_test.remove(value)
    
print(list_test)

[1, 1]
# cf) del 함수
list_test_1 = [1, 2, 1, 2]
del list_test_1[::-2]
print(list_test_1)

[1, 1]

 

while 반복문: 시간을 기반으로 반복하기

유닉스 타임(Unix Time)이란 세계 표준시(UTC)로, 1972년 1월 1일 0시 0분 0초를 기준으로 몇 초가 지났는지를 정수로 나타낸 것을 말한다. 

이를 활용하면 5초 동안 다른 사용자의 응답을 기다릴 수 있고, 통신할 때 자주 사용하는 코드이다. 

 

while 반복문: break 키워드 / continue 키워드

반복문 내부에서만 사용할 수 있는 break와 continue라는 특수한 키워드가 있다. 

break 키워드는 반복문을 벗어날 때 사용하는 키워드로 일반적으로 무한 반복문을 만들고, 내부의 반복을 벗어날 때 많이 사용한다.

continue 키워드는 현재 반복을 생략하고, 다음 반복으로 넘어갈 때 사용하는 키워드이다. 

# 변수 선언
i = 0

# 무한 반복
while True:
    # 몇 번째 반복인지 출력
    print('{}번째 반복문입니다.'.format(i))
    i = i+1
    # 반복을 종료한다.
    input_text = input('> 종료하시겠습니까?(y): ')
    if input_text in ['y', 'Y']:
        print('반복을 종료합니다.')
        break
        

다음과 같이 처음부터 반복에 조건을 걸고 사용하고 싶을 때 continue 키워드를 사용하면 이후 처리의 들여쓰기를 하나 줄일 수 있다. 

 

😁

출처:

혼자공부하는파이썬(윤인성) https://www.youtube.com/watch?v=Bvn2F_7_Od8&list=PLBXuLgInP-5kr0PclHz1ubNZgESmliuB7&index=28

https://www.youtube.com/watch?v=joyIjI_aM4I&list=PLBXuLgInP-5kr0PclHz1ubNZgESmliuB7&index=29

 

반응형