프로그래밍/[ Python ]

[Python] Sleep 함수 사용법에 대해

gooooooood 2024. 12. 2. 15:15
반응형

Python의 sleep() 함수는 프로그램을 지정한 시간만큼 일시적으로 멈추게 하는 함수입니다. 이 함수는 주로 시간 지연이 필요한 작업에서 유용하게 사용됩니다. 예를 들어, 서버와의 연결을 기다리거나 반복 작업 사이에 일정 간격을 두고 싶을 때 사용됩니다.

time.sleep() 함수는 time 모듈에 포함되어 있으며, 이 함수를 사용하면 코드의 실행을 지정한 시간(초 단위)만큼 중단시킬 수 있습니다.

사용법

import time

# 시간 지연을 위해 sleep() 함수 사용
time.sleep(초 단위의 시간)

 

여기서 초 단위의 시간은 실수로도 입력할 수 있습니다. 예를 들어, 1.5를 입력하면 1.5초 동안 대기하게 됩니다.

예시 코드

import time

print("프로그램 시작")

# 2초 동안 일시 중지
time.sleep(2)

print("2초가 지난 후 실행됩니다.")

# 0.5초 동안 일시 중지
time.sleep(0.5)

print("0.5초 후에 또 실행됩니다.")
# 출력
프로그램 시작
(2초 대기)
2초가 지난 후 실행됩니다.
(0.5초 대기)
0.5초 후에 또 실행됩니다.

이 예시에서 time.sleep(2)는 프로그램이 2초 동안 일시 중지되게 하며, 그 이후에 "2초가 지난 후 실행됩니다."라는 메시지가 출력됩니다. 마찬가지로 time.sleep(0.5)는 0.5초의 지연을 추가합니다.

 

실수 값을 사용한 예시

time.sleep()에 실수를 전달하면 그만큼 세밀한 시간 지연을 설정할 수 있습니다.

import time

for i in range(5):
    print(f"{i + 1}번째 출력")
    time.sleep(0.8)  # 0.8초 간격으로 출력
# 출력
1번째 출력
(0.8초 대기)
2번째 출력
(0.8초 대기)
3번째 출력
(0.8초 대기)
4번째 출력
(0.8초 대기)
5번째 출력

 

 

sleep() 함수의 주요 특징

  1. 블로킹 함수: sleep() 함수는 프로그램의 실행을 일시적으로 멈추게 합니다. 즉, 지정된 시간 동안 다른 작업이 실행되지 않으며, 이 시간 동안 CPU는 다른 작업을 처리하지 않고 대기하게 됩니다.
  2. 정밀도: sleep() 함수는 초 단위로 동작하지만, 운영 체제와 시스템에 따라 정확한 시간에 대한 정밀도는 다를 수 있습니다. 예를 들어, time.sleep(1.0)을 실행해도 정확히 1초가 아니라 약간의 오차가 있을 수 있습니다.
  3. 효율성: sleep()은 CPU 리소스를 절약하는 데 유용합니다. 예를 들어, 반복문에서 계속해서 실행하지 않고 일정 시간 대기하고 싶을 때 사용하면 시스템 자원을 낭비하지 않습니다.

 

sleep() 함수 사용 사례

  1. 네트워크 요청 시 대기: 서버와 통신하거나 API 요청을 보내고 나서 일정 시간 대기해야 할 때 사용합니다
    import time
    import requests
    
    urls = ["https://example.com", "https://example.org", "https://example.net"]
    
    for url in urls:
        response = requests.get(url)
        print(f"{url}에서 받은 응답: {response.status_code}")
        time.sleep(2)  # 각 요청 후 2초 간격으로 대기

  2. 게임 및 애니메이션: 게임이나 애니메이션에서 일정 시간 간격으로 이벤트를 처리하거나 화면을 업데이트할 때 사용합니다.
  3. 로깅 및 디버깅: 프로그램의 진행 상황을 점검하거나 디버깅을 위해 시간을 두고 로그를 출력할 때 유용하게 쓰입니다.

 

결론

time.sleep()은 간단하지만 강력한 기능을 제공하여 Python 코드에서 시간을 제어하는 데 매우 유용합니다. 특히 반복 작업에서 시간 간격을 두고 싶거나, 외부 시스템과의 통신에서 대기 시간이 필요할 때 많이 사용됩니다.



반응형

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

[Python] MongoDB 다루기  (0) 2024.12.03
[Python] statistics Module  (0) 2024.11.27
[Python] Requests Module  (0) 2024.11.26
[Python] MySQL  (0) 2024.11.25
[Python] Matplotlib  (0) 2024.11.22