Ich habe wirklich Mühe zu verstehen, warum es nicht so funktioniert, wie ich denke, es sollte.Warum wird meine Druckfunktion verzögert?
Bearbeiten: Sorry für jede Verwirrung, es ist die erste print
, die nicht ausgeführt werden. print('The alarm will sound at ' + result, flush=True)
Nichts passiert, bis if time.strftime('%H:%M') == result
True ist. Egal wo ich die Druckfunktion einsetze, es wird nicht ausgeführt, bis das obige erfüllt ist. Sogar innerhalb der while
Schleife, es wird nicht laufen.
#! /usr/bin/python
import argparse
import time
import datetime
def alarm(set_time):
set_time = str(set_time)[:2]+ ':' + str(set_time)[2:]
alarm_time = datetime.datetime.strptime(set_time,'%H:%M').strftime('%H:%M')
return alarm_time
def main():
parser = argparse.ArgumentParser()
parser.add_argument('wake', help='The time for the alarm to sound', type=str)
args = parser.parse_args()
result = alarm(args.wake)
print('The alarm will sound at ' + result, flush=True)
while True:
if time.strftime('%H:%M') == result:
print('Wake up')
return
else:
time.sleep(1)
pass
if __name__ == '__main__':
main()
Ist das nicht die Idee? Ich meine ... Nichts wird passieren, bis die aktuelle Zeit mit der Zeit übereinstimmt, in der der Alarm ertönen wird? Weiß nicht ... Vielleicht vermisse ich etwas ... – BorrajaX
Bleib dran; Sagen Sie, dass der Alarm nicht zur angegebenen Zeit aktiviert wird oder dass er nur zur angegebenen Zeit aktiviert wird? – TigerhawkT3
Es tut mir leid, ich habe den zweiten 'Print' vergessen. Umbenennung Es ist das erste 'print', das erst ausgeführt wird, wenn das oben genannte True ist. –