티스토리 뷰
while 반복문
# 기본 형태
while 불 표현식:
문장
if 조건문과 비슷한 형식
<불 표현식>이 참인 동안 문장을 계속 반복함
while 반복문 : for 반복문처럼 사용하기
# 반복 변수를 기반으로 반복하기
i = 0
while i < 5:
print("{}번째 반복입니다.".format(i))
i += 1
</>
0번째 반복입니다.
1번째 반복입니다.
2번째 반복입니다.
3번째 반복입니다.
4번째 반복입니다.
while 반복문과 for 반복문은 언제 사용하는가?
for 반복문 사용은 앞서 나온 상황 이외에는 모두 while 반복문을 사용함 (대표적으로 '무한 반복')
for 반복문으로는 무한 반복을 구현 X
while 반복문의 가장 중요한 키워드 : '조건'
조건을 활용해 반복을 사용해야 한다면 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]
리스트 내부에 있는 모든 2가 제거될 때까지 while 반복됨. 때문에 2가 모두 제거된 결과가 출력.
while 반복문 : 조건 '시간을 기반으로 반복하기'
유닉스 타임 Unix Time: 세계 표준시(UTC). 1970년 1월 1일 0시 0분 0초를 기준으로 몇 초가 지났는지 정수로 나타낸 것을 말함
파이썬에서 유닉스 타임 구하는 법
1) 시간과 관련된 기능 가져오기
import time
2) 유닉스 타임 구하기
print(time.time())
</>
1624267276.7867782
5초 동안 반복하기
유닉스 타임과 while 반복문을 조합해 특정 시간 동안 프로그램을 정지시킬 수 있음
# 시간과 관련된 기능 가져오기
import time
# 변수 선언
number = 0
# 5초 동안 반복하기
target_tick = time.time() + 5
while time.time() < target_tick:
number += 1
# 출력
print("5초 동안 {}번 반복했습니다.".format(number))
</>
5초 동안 27009500번 반복했습니다.
이를 활용해 5초 동안 다른 사용자의 응답을 기다릴 수 있음.
통신할 때 자주 사용하는 코드이므로 시간을 기반으로 조건을 걸때는 while 반복문을 활용한다고 기억하면 됨.
while 반복문 키워드
break 키워드
반복문 내부에서만 사용할 수 있는 특수한 키워드.
반복문을 벗어날 때 사용하는 키워드.
일반적으로 무한 반복문을 만들고, 내부의 반복을 벗어날 때 많이 사용
# 변수 선언
i = 0
# 무한 반복
while True:
# 몇 번째 반복인지 출력
print("{}번째 반복문입니다.".format(i))
i = i + 1
# 반복을 종료
input_text = input("> 종료하시겠습니까?(y/n): ")
if input_text in ["y", "Y"]:
print("반복을 종료합니다.")
break
</>
0번째 반복문입니다.
> 종료하시겠습니까?(y/n): a
1번째 반복문입니다.
> 종료하시겠습니까?(y/n): w
2번째 반복문입니다.
> 종료하시겠습니까?(y/n): q
3번째 반복문입니다.
> 종료하시겠습니까?(y/n): e
4번째 반복문입니다.
> 종료하시겠습니까?(y/n): b
5번째 반복문입니다.
> 종료하시겠습니까?(y/n): y
반복을 종료합니다.
'y'나 "Y"를 입력하면 break 키워드를 만나 반복문을 벗어나게 되므로 프로그램이 종료됨
이 외의 경우에는 반복문을 계속 실행함
continue 키워드
반복문 내부에서만 사용할 수 있는 특수한 키워드.
현재 반복을 생략하고, 다음 반복으로 넘어갈 때 사용하는 키워드
# 변수 선언
numbers = [5, 15, 6, 20, 7, 25]
# 반복
for number in numbers:
# number가 10보다 작으면 다음 반복으로 넘어감
if number < 10:
continue
print(number)
</>
15
20
25
원래는 5, 15, 6, 20, 7, 25를 출력해야 하지만 continue로 인해 10보다 작으면 출력되지 않고(반복 생략) 다음 number로 넘어가게 됨
if else 구문을 사용해도 위의 결과는 출력될 수 있다. 하지만 처음부터 반복에 조건을 걸고 사용하고 싶을때, continue 조건을 사용하면
이후 처리의 들여쓰기를 하나 줄일 수 있음
# continue 키워드를 사용하지 않은 경우
for number in numbers:
if number >= 10:
코드
코드
코드
코드
# continue 키워드를 사용한 경우
for number in numbers:
if number < 10:
continue
코드
코드
코드
코드
코드 앞의 들여쓰기가 줄어든 것을 확인할 수 있음
'Language > PYTHON' 카테고리의 다른 글
함수 만들기(2) 가변 매개변수 / 기본 매개변수 / 키워드 매개변수 (0) | 2021.10.03 |
---|---|
함수 만들기(1) 함수 기본/ 매개변수 기본 (0) | 2021.09.29 |
반복문과 관련된 파이썬 기본 함수 (0) | 2021.08.09 |
for 반복문 (0) | 2021.06.20 |
딕셔너리 (0) | 2021.06.20 |
- Total
- Today
- Yesterday
- Arrays 클래스
- 리스트연산자
- Objects 클래스
- FALSE
- Calendar 클래스
- IndexError
- 역반복문
- 프로그램
- 기본 API 클래스
- StringTokenizer 클래스
- 순환할당
- 문자열함수
- StringBuilder 클래스
- 자료형
- 스레드 스케줄링
- 요소선택
- Format 클래스
- java.time.package
- Math 클래스
- not_in
- 딕셔너리
- StringBuffer 클래스
- 파이썬
- Pattern 클래스
- Date 클래스
- 포장 클래스
- 함수
- Random 클래스
- 리스트
- python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |