Python的學習筆記案例5 判斷第幾天3 0

2021-09-24 10:25:48 字數 1990 閱讀 4421

v3.0本節課介紹集合的概念:

python中的集合(set)型別同數學中的集合概念一致,即包含0或多個資料項的無序組合。

集合中的元素不可重複

集合是無序組合,沒有索引和位置的概念

set()函式用於集合的生成,返回結果時乙個無重複且排序任意的集合

集合通常用於表示成員間的關係、元素去重

集合操作

含義s - t 或 s.difference(t)

返回在集合s中但不在t中的元素

s & t 或s.intersection(t)

返回同時在集合s和t中的元素

s | t 或 s.union(t)

返回集合s和t中的所有元素

s ^ t 或s.symmetric_difference(t)

返回集合s和t中的元素,但不包括

同時在其中的元素

1、將30天、31天的月份分別放在不同的兩個集合中;

2、判斷當前月之前的所有月份都分別在哪個集合中,然後將天數加上30天或31天;

3、2月份,加上28天;

4、閏年並大約2月份,加上1天;

5、還需要將初始值days先加上day。

"""

版本:3.0

日期:2019-06-13

功能:輸入某年某月某日,判斷這一天是這一年的第幾天?

2.0增加功能:使用列表代替元組

3.0增加功能:將月份劃分為不同的集合再操作

"""from datetime import datetime

def is_leap_year(year):

"""判斷year是否為閏年

是,返回true

否,返回false

"""is_leap = false

if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):

is_leap = true

return is_leap

def main():

"""主函式

"""input_date_str = input('請輸入日期(yyyy/mm/dd):')

input_date = datetime.strptime(input_date_str, '%y/%m/%d')

# print(input_date)

year = input_date.year

month = input_date.month

day = input_date.day

# 包含30天的月份集合

_30_days_month_set =

# 包含31天的月份集合

_31_days_month_set =

# 初始化值

days = 0

days += day

for i in range(1, month):

if i in _30_days_month_set:

days += 30

elif i in _31_days_month_set:

days += 31

else:

days += 28

if is_leap_year(year) and month > 2:

days += 1

print('這是{}年的第{}天'.format(year, days))

if __name__ == '__main__':

main()

結果如下圖:

Python的學習筆記案例5 判斷第幾天2 0

1.0可以說使用 最笨 的方法得到日期是本年度的第幾天,下面逐漸地改進方法,使用最簡潔的 來得到我們想要的東西。使用列表代替元組 首先,使用函式封裝判斷是否閏年的部分 其次,使用列表代替元組,更新2月份的天數,減少判斷條件 最後,整體規範 使用 佔位符,使得輸入結果更美觀。版本 2.0 日期 201...

python類的學習 5 綜合案例解析

基本思路 對列表進行封裝和二次開發,通過在列表尾部追加和刪除元素來模擬棧的入棧和出棧操作。如果棧內部封裝的列表中元素數量達到容量的限制則表示已滿,如果列表為空則表示棧已空。改變棧的大小時,如果新的大小比棧中已有的元素數量還小,則拒絕該操作。class stack 構造方法 def init self...

Python 學習筆記 5

今天從25章開始 p652 學習 python 的 oop 用 看起來更直觀 class class a def init self,value 建構函式 self.data value def add self,other 運算子過載 return class a self.data other ...