2017-10-26 1 views
0
import datetime 


time = datetime.datetime.now() 
hm = 0 

def function(): 

    while True: 
     hm = (time.hour, time.minute) 
     break 

    if hm == (6,30): 
     "stuff" 
     function() 

    else: 
     "stuff" 

내 목표는 시간을 확보하고 특정 시간에 도달하면 무언가를하는 것입니다. 제 편집자가 코드에 도달 할 수 없다는 오류를 표시합니다. while 루프에서 변수를 반환 할 수 없으므로 어떻게해야할지 모르겠다. 감사.if 문에서 while 루프에있는 변수를 사용하십시오. python

+0

을 참은 조건을 사용하여 무한 루프를 만드는 동안. 또는 휴식을 사용, 필요한 경우, 나는 조건을 제안합니다. – Rockybilly

+0

들여 쓰기가 꺼져 있습니다. –

+0

[schedule] (https://schedule.readthedocs.io/en/stable/)과 같은 라이브러리를 사용해 볼 수 있습니다. –

답변

0

나는 while 루프를 생략하고 (당신이 라이브러리를 사용하지 않는 경우) 다음과 같은 접근 방식으로 갈 것 :

import datetime 
import time 

start_time = datetime.datetime.now() 
end_time = start_time.replace(hour=18, minute=30, second=0, microsecond=0) 
delta = end_time - start_time 
time.sleep(delta.total_seconds()) 
# do stuff 
+0

추적 : 가장 최근 호출 마지막 : 파일 "C :/Users/Sam Scolari/Documents/Python Projects/AndroidApp/service/main.py", 줄 7, time.sleep (delta.total_seconds()) ValueError : 수면 길이가 음수가 아니어야합니다. –

+0

종료 시간이 시작 시간 이후인지 확인해야합니다. 종료 시간에 24 시간을 추가해야합니다. –

0

루프에 break 문이 없습니다. if/else은 루프의 범위 밖에 있습니다. 들여 쓰기를 수행하고 break 문을 추가해야합니다.

+0

방금 ​​편집 한 코드를 반복하여 원하는대로 반복 할 수 있습니까? –

관련 문제