用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(不過為什么不引用這個庫就能計算?這個我還不懂)。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM