使用 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 = ....
总而言之,执行此操作将允许您在每次 运行 脚本时保存结果,以便下次 运行 脚本时可以从该值开始。
我正在尝试创建一个程序,询问那天是否有学校,如果有,从总数中减去(截至 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 = ....
总而言之,执行此操作将允许您在每次 运行 脚本时保存结果,以便下次 运行 脚本时可以从该值开始。