用python解决‘三天打鱼两天晒网’的问题。中国有句俗语叫“三天打鱼两天晒网”

中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在你编写此程序的这天是打鱼还是晒网。

(提示:此题要用到时间函数datetime()。先计算你编程的这天 datetime.now()与1990年1月1日相差的天数,再用相差天对5求模%,余数如果是0,1,2就是打鱼,否则就是晒网)

1 from datetime import datetime
2 before = datetime.strptime('1990-01-01 08:00:00','%Y-%m-%d %H:%M:%S')
3 now = datetime.now()
4 t = now - before #t.days属性是两个日期相差的天数
5 x = t.days % 5
6 if x in [0,1,2]:
7      print("今天打鱼")
8 else:
9      print("今天晒网")

 学语言,多练习(>人<;)


1
>>> type(before) 2 <class 'datetime.datetime'> 3 >>> type(now) 4 <class 'datetime.datetime'> 5 >>> type(t) 6 <class 'datetime.timedelta'> 7 >>> type(x) 8 <class 'int'>

用到了:

>>> datetime.now()#返回当前系统时间
datetime.datetime(2020, 3, 18, 23, 23, 42, 575587)
>>> datetime.strptime('1990-01-01 08:00:00','%Y-%m-%d %H:%M:%S')#由字符串格式转化为日期格式
datetime.datetime(1990, 1, 1, 8, 0)
#datetime.datetime.timedelta用于计算两个日期之间的差值

if 和 else选择结构

  学习的碎碎念:

>>> time1 = datetime.now()
>>> time2 = datetime(1990,1, 1)
>>> print(time1-time2)
11034 days, 22:12:23.562459
>>> type(time)
<class 'datetime.timedelta'>
>>> type(now)
<class 'datetime.datetime'>
>>> print(time1-time2).days
11034 days, 22:12:23.562459
Traceback (most recent call last):
  File "<pyshell#20>", line 1, in <module>
    print(time1-time2).days
AttributeError: 'NoneType' object has no attribute 'days'

print(time1-time2).days不行[因为这个格式本来就有问题],但是print((time1-time2).days)可以啊!

所以不用datetime.strptime以字符串的形式导入日期,用datetime.datetime定义一个日期也能做。

但是计算日期差还是要用到timedelta(不过为什么不引用这个库就能计算?这个我还不懂)。

 

猜你喜欢

转载自www.cnblogs.com/rain-is-endless/p/rain-is-endless.html