안녕하세요, Jack Snider입니다. 오늘은 프로그램을 수행하다 일시정지를 하고 싶을 때 사용하는 sleep 함수에 대해서 알아보는 시간을 가져보도록 하겠습니다.
1. 파이썬 sleep 함수 개념
파이썬의 sleep 함수는 time 모듈에 포함되어 있으며, 프로그램의 실행을 지정된 시간 동안 일시적으로 중지시키는 데 사용된다. sleep 함수를 사용하면 프로그램이 일정 시간 동안 아무 작업도 수행하지 않고 대기할 수 있다. 이것은 주로 다음과 같은 상황에서 유용하다.
1. 시간 지연
어떤 작업을 시작하기 전에 일정 시간 동안 기다려야 할 때, 예를 들어 파일 다운로드가 완료되기를 기다리거나, 외부 서버의 응답을 기다리는 등의 상황에서 사용할 수 있다.
2. 반복 작업의 제어
반복문 안에서 일정한 간격으로 작업을 실행하고 싶을 때, sleep 함수를 사용하여 반복 간격을 조정할 수 있다.
sleep 함수의 기본 구조
import time
time.sleep(seconds)
위의 코드는 sleep 함수의 기본적인 사용법이다, seconds는 프로그램을 일시 중지할 시간을 초 단위로 나타내는 부동소수점 숫자(float)이다. time.sleep() 함수는 프로그램을 실행 중인 스레드를 주어진 시간 동안 일시 중지하고, 그 후에 다음 코드를 실행한다. 예를 들어, time.sleep(3)은 프로그램을 3초 동안 일시 중지시키고, 3초 후에 다음 코드를 실행한다.
2. 파이썬 sleep 함수 예제
이제는 time.sleep() 함수를 사용하는 다양한 예제를 보면서 함수의 사용법을 익혀보자.
간단한 시간 지연
import time
print("시작")
time.sleep(2) # 2초 동안 프로그램 일시 중지
print("2초가 지났습니다.")
프로그램을 시작한 후 2초 동안 아무 작업도 수행하지 않고 대기한 후에 메시지를 출력한다.
• import time
time 모듈을 임포트 한다.
• time.sleep(2)
프로그램을 2초 동안 일시 중지한다.
• print('2초가 지났습니다')
2초가 지난 후에 이 메시지를 출력한다.
반복 작업의 간격 조절
import time
for i in range(5):
print("반복 작업 실행 중...")
time.sleep(1) # 각 반복마다 1초의 간격을 둠
반복문을 사용하여 "반복 작업 실행 중..." 메시지를 1초 간격으로 5번 출력한다.
• import time
time 모듈을 임포트 한다.
• for i in range(5)
0부터 4까지 총 5번 반복한다.
• print('반복 작업 실행 중...')
반복 작업을 나타내는 메시지를 출력한다.
• time.sleep(1)
각 반복 사이에 1초 동안 일시 중지한다.
파일 다운로드 후 처리
import time
print("파일 다운로드 시작")
# 실제 파일 다운로드 코드
time.sleep(5) # 파일 다운로드를 기다림 (5초 동안)
print("파일 다운로드 완료")
# 다운로드된 파일을 처리하는 코드
파일 다운로드가 시작되고 5초 동안 다운로드를 기다린 후 "파일 다운로드 완료" 메시지를 출력한다.
• import time
time 모듈을 임포트 한다.
• print('파일 다운로드 시작')
파일 다운로드가 시작되었음을 나타내는 메시지를 출력한다.
• time.sleep(5)
파일 다운로드를 5초 동안 기다린다.
• print('파일 다운로드 완료')
파일 다운로드가 완료되었음을 나타내는 메시지를 출력한다.
외부 서버 응답 대기
import time
import requests
while True:
response = requests.get("https://example.com/api/data")
if response.status_code == 200:
print("서버 응답을 받았습니다.")
break
else:
print("서버 응답 대기 중...")
time.sleep(1) # 1초 간격으로 서버 응답을 확인
외부 서버에 요청을 보내고, 서버가 응답할 때까지 1초 간격으로 서버 응답을 확인하는 무한 루프를 사용한다.
• import time
time 모듈을 임포트 한다.
• import requests
HTTP 요청을 보내기 위해 requests 모듈을 임포트 한다.
• while True
무한 루프를 시작한다.
• response = requests.get("요청할 주소")
외부 서버에 GET 요청을 보낸다.
• if response.status_code == 200
서버가 성공적으로 응답했는지 확인
• break
서버가 응답했다면 루프를 종료한다.
• else
서버가 응답하지 않았다면 "서버 응답 대기 중..." 메시지를 출력하고 1초 동안 일시 중지(time.sleep(1))
타이머 기능
import time
def countdown(seconds):
for i in range(seconds, 0, -1):
print(f"남은 시간: {i} 초")
time.sleep(1)
print("타이머 종료")
countdown(10) # 10초 카운트다운
지정된 시간(위의 예제에서는 10초) 동안 카운트다운하는 간단한 타이머 함수를 정의하고 실행한다.
• import time
time 모듈을 임포트 한다.
• def countdown(seconds)
countdown 함수를 정의하고 초를 입력으로 받는다.
• for i in range(seconds,0,-1)
입력된 초부터 1까지 역순으로 반복한다.
• print(f"남은 시간 : {i} 초")
남은 시간을 출력한다.
• time.sleep(1)
각 초마다 1초의 간격을 둔다.
• print("타이머 종료")
타이머가 종료되었음을 출력한다.
이러한 예제들은 time.sleep() 함수를 사용하여 다양한 상황에서 시간 지연을 만드는 방법을 보여주며, 이것은 다양한 프로그래밍 시나리오에서 유용하게 활용된다.