人工智慧學習聯盟免費課程 案例五 判斷第幾天

2021-09-13 08:53:11 字數 4818 閱讀 9567

通過不同的資料儲存型別來實現同乙個功能,元組、列表、集合和字典。

from datetime import datetime
def

is_leap_year

(year)

:'''

判斷是否為閏年

'''is_leap =

false

if(year %2==

0)|(

(year %2==

0)&(year %2!=

0)):

is_leap =

true

return is_leap

#元組儲存月份天數表

defdays_tupl()

: data_str =

input

('請輸入日期(yyyymmdd):'

) data_time = datetime.strptime(data_str,

'%y%m%d'

)#提取年月日

year = data_time.year

month = data_time.month

day = data_time.day

#月份天數表

days_of_month =(31

,28,31

,30,31

,30,31

,31,30

,31,30

,31)#計算天數

days =

sum(days_of_month[

:month -1]

)+ day

if(month >2)

& is_leap_year(year)

: days +=

1print

('這是{}年的第{}天(by tupl)。'

.format

(year,days)

)

#列表儲存月份天數表

defdays_list()

: data_str =

input

('請輸入日期(yyyymmdd):'

) data_time = datetime.strptime(data_str,

'%y%m%d'

)#提取年月日

year = data_time.year

month = data_time.month

day = data_time.day

#月份天數表

days_of_month =[31

,28,31

,30,31

,30,31

,31,30

,31,30

,31]#判斷閏年

if is_leap_year(year)

: days_of_month[1]

=29#計算天數

days =

sum(days_of_month[

:month -1]

)+ day

print

('這是{}年的第{}天(by list)。'

.format

(year,days)

)

#集合儲存月份天數表

defdays_set()

: data_str =

input

('請輸入日期(yyyymmdd):'

) data_time = datetime.strptime(data_str,

'%y%m%d'

)#提取年月日

year = data_time.year

month = data_time.month

day = data_time.day

#月份天數表

_31_days =

_30_days =

#初始化

days =

0 days += day

#計算天數

for i in

range(1

,month)

:if i in _31_days:

days +=

31elif i in _30_days:

days +=

30else

: days +=

28#判斷閏年

if is_leap_year(year)

: days +=

1print

('這是{}年的第{}天(by set)。'

.format

(year,days)

)

#集合儲存月份天數表

defdays_dic()

: data_str =

input

('請輸入日期(yyyymmdd):'

) data_time = datetime.strptime(data_str,

'%y%m%d'

)#提取年月日

year = data_time.year

month = data_time.month

day = data_time.day

#月份天數表

days_of_month =

#初始化

days =

0 days += day

#計算天數

for i in

range(1

,month)

: days += days_of_month[i]

#字典索引從1開始

#判斷閏年

if is_leap_year(year)

: days +=

1print

('這是{}年的第{}天(by dic)。'

.format

(year,days)

)

def

main()

: days_tupl(

) days_list(

) days_set(

) days_dic(

)

main(

)

請輸入日期(yyyymmdd):20000301

這是2023年的第61天(by tupl)。

請輸入日期(yyyymmdd):20000301

這是2023年的第61天(by list)。

請輸入日期(yyyymmdd):20000301

這是2023年的第61天(by set)。

請輸入日期(yyyymmdd):20000301

這是2023年的第61天(by dic)。

如果把字典中的鍵值對反過來,如何實現功能

python自帶的功能,一行**來實現

#思考1

defdays_dic2()

: data_str =

input

('請輸入日期(yyyymmdd):'

) data_time = datetime.strptime(data_str,

'%y%m%d'

)#提取年月日

year = data_time.year

month = data_time.month

day = data_time.day

#月份天數表

days_of_month =,30

:}#初始化

days =

0 days += day

#計算天數

for i in

range(1

,month)

:if i in days_of_month[31]

: days +=

31elif i in days_of_month[30]

: days +=

30else

: days +=

28#字典索引從1開始

#判斷閏年

if is_leap_year(year)

: days +=

1print

('這是{}年的第{}天(by dic)。'

.format

(year,days)

)

days_dic2(

)

請輸入日期(yyyymmdd):20000301

這是2023年的第61天(by dic)。

#思考2

from datetime import datetime as dt

print

(dt.strftime(dt.strptime(

input

('請輸入查詢日期(yyyymmdd):'),

'%y%m%d'),

'%j'

))

請輸入查詢日期(yyyymmdd):20000301

061

借助datetime庫里的stftime函式來實現格式化資料。該函式的功能是將乙個時間型別變數轉換成你需要的格式,%j代表的是day of the year as a zero-padded decimal number.

更多參考python官方文件

人工智慧學習聯盟免費課程 案例四 52周存錢挑戰

忽然發現可以直接jupyter轉成html然後再轉成pdf儲存到網盤,以後部落格就放棄寫作咯 52周存錢挑戰的目的是,根據你輸入的起始存錢金額,每週遞增金額,和目標週數,計算你在每一周所需要存入的數目,在該周的累計總存入金額等。本案例依舊是對前面使用的迴圈的複習,並且新增了一些新的內容。乙個是有使用...

人工智慧學習聯盟免費課程 案例二 繪製分形樹

本案例的學習要借助turtle庫,這是乙個畫筆庫。它的座標定義如下 首先是簡單的利用迴圈繪製多個五角星。def draw pentagram size count 1 while count 5 turtle.forward size turtle.right 144 count 1 colors ...

人工智慧課程方案

對於企業來說,隨著人工智慧的逐步滲透,企業的經營管理也將面臨著較大的變化和挑戰,也會迎來自身的轉型和發展。鑑於此,我們將在概述人工智慧和企業管理內涵的基礎上,格物斯坦認為 基於人工智慧在現代企業管理中的運用的分析,詳細闡述人工智慧對於現代企業管理的挑戰。現代的人工智慧可以找出對應的模式,然後對物件進...