使用 python 跟踪并不断更新离校天数

Using python to track and constantly update days left of school

我正在尝试创建一个程序,询问那天是否有学校,如果有,从总数中减去(截至 1-22-18 还剩 86 天)。它有效,但程序在减去一次后结束,所以我的问题是,有没有办法让它继续 运行 并自我更新,或者可能在 24 小时内再次询问用户(不知道如何)?

Python3.4.4 Windows10

import time

localtime = time.asctime(time.localtime(time.time()))
day = localtime[0:3]
check = 0
daysLeft = 87 #As of 1-22-18
daysOfTheWeek = ["Mon", "Tue", "Wed", "Thu", "Fri"]
yesPossibilities = ["yes", "y", "yeah"]
print ("Did you have school today?")
schoolToday = input().lower()

if schoolToday in yesPossibilities:
    if day in daysOfTheWeek:
        daysLeft -= 1

print ("There are", daysLeft, "days of school left!")

你需要一个无限循环和一个睡眠定时器

import time
time.sleep(86400) #this will make the code sleep for 1 day = 86400 seconds

接下来,将sleep放入死循环

while True:
    #get input
    if input meets condition:
        reduce day count by 1
        print number of days left
        time.sleep(86400)
    if days left meets some threshold:
        print "school over"
        break

我认为你真正想做的是每次 运行 你的脚本时保存结果(例如:如果你今天 运行 它,它告诉你还有 86 天,如果你明天 运行 它,它会告诉你还有 85 天,等等)。您可能不希望永远 运行 脚本,因为如果您关闭计算机,脚本就会终止,这意味着您将丢失所有结果。我将按以下方式将输出保存到文本文件中:

print("There are" daysLeft, "days of school left!")
with open("EnterNameOfFileHere.txt",'w') as f:
    print(daysLeft,file=f)

这会将 daysLeft 变量保存在一个文本文件中,您可以在程序开始时按以下方式访问该文件:

check = 0
with open("EnterNameOfFileHere.txt") as f:
    daysLeft = int(f.readline().strip())
daysOfTheWeek = ....

总而言之,执行此操作将允许您在每次 运行 脚本时保存结果,以便下次 运行 脚本时可以从该值开始。