通過不同的資料儲存型別來實現同乙個功能,元組、列表、集合和字典。
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 ...
人工智慧課程方案
對於企業來說,隨著人工智慧的逐步滲透,企業的經營管理也將面臨著較大的變化和挑戰,也會迎來自身的轉型和發展。鑑於此,我們將在概述人工智慧和企業管理內涵的基礎上,格物斯坦認為 基於人工智慧在現代企業管理中的運用的分析,詳細闡述人工智慧對於現代企業管理的挑戰。現代的人工智慧可以找出對應的模式,然後對物件進...