Python:程序中的日期时间更新,每X秒循环遍历一个列表

时间:2019-01-22 17:27:18

标签: python python-3.x

我正在尝试编写一个模拟(针对一个业余项目),该模拟贯穿各个季节,并且在四个季节中的每个季节之后都对过去的年份进行计数。

(稍后会添加一些根据季节和时间而繁殖但暂时无法通过的植物)

我认为我的问题之一是我不再打电话给sim_time。计算机存储sim_time的值,然后仅循环访问该值。

它旨在使用日期时间和%运算符每240秒创建一年。然后,每90秒钟循环一个季节。冬季结束后,它将无限期地循环回到春季,依此类推。不知道如何做到这一点,或者我到底缺少什么。

只学习Python一个月,乐于接受所有建议和指针,对我们的帮助深表谢意!

import os
from datetime import datetime, time

os.system("cls")


now = datetime.now()
day_start = datetime.combine(now.date(), time(0))
time_now = ((now - day_start).seconds)


spring = "Spring"   # increased harvest
summer = "Summer"   # standard harvest
autumn = "Autumn"   # no harvest
winter = "Winter"   # no harvest


seasons = [spring, summer, autumn, winter]
year = 0


def season(world_time):
    sim_time = int(time_now)
    if sim_time % 360 == 0:
        year += 1
        return year

    if sim_time % 90 == 0:
        # Spring has arrived
        return spring

    elif sim_time % 90 == 0 and sim_time % 180 == 0:
        # Summer has arrived
        return summer

    elif sim_time % 90 == 0 and sim_time % 180 == 0 and sim_time % 270 == 0:
        # Autumn has arrived
        return autumn

    else:
        # Winter has arrived
        return winter


while True:
    season(time_now)
    print(season(time_now))
    print(year)

# end of file

1 个答案:

答案 0 :(得分:0)

由于您无法在函数外部访问该变量,因此请立即删除年份计算。

问题出在day_start = datetime.combine(now.date(), time(0))

我只是将其设为datetime.now(),因为它将在启动时进行跟踪。