需求如下:
用戶輸入月份,判斷當(dāng)前月份為幾月,并輸出有多少天。如果用戶輸入2月份,則請(qǐng)用戶輸入年份,判斷平年則輸出28天,閏年則輸出29天。
這里需要知道哪些是31天,1,3,5,7,8,10,12 是31天
那些是30天,除了2月,和31天之外,都是30天
2月比較特殊,還要判斷年份是閏年還是平年
判斷是否是閏年,需要年份整除4能除盡,并且整除100不能除盡,或者整除400能除盡
表達(dá)式就是:
year %4==0 and year%100!=0 or year %400==0
接下來(lái)就簡(jiǎn)單了,需要接收年份和月份,聲明一個(gè)接收天數(shù)得變量
year=int(input('請(qǐng)輸入年份:'))
month=int(input('請(qǐng)輸入月份:'))
day=0
然后為了讓程序更健壯,需要判斷月份是否合法,月份只能是1~12月之間
就需要判斷 month>0 and month <13
順便講一下,全閉環(huán)和半閉合得區(qū)別
比如接收一個(gè)值i,小6和小于等于5
if i<6:
pass
if i<=5:
pass
小于6,只比較小于6,蕞大小于6得是5就結(jié)束,而小于等于5,則是判斷小于5,還要判斷是否== 5,這里建議用全閉合,判斷還看不出效率,如果是循環(huán),這時(shí)候就能凸顯出來(lái)了,特別是多層嵌套循環(huán),外層用全閉合,效率更高。
整體代碼如下:
year=int(input('請(qǐng)輸入年份:'))month=int(input('請(qǐng)輸入月份:'))day=0if month>0 and month<13: if month in(1,3,5,7,8,10,12): day=31 elif month==2: if year %4==0 and year%100!=0 or year%400==0: day=29 else: day=28 else: day=30else: print('月份輸入有誤!')print(f'{year}年{month}月,當(dāng)月有{day}天')
在這個(gè)例子中,我們運(yùn)用到了input() 函數(shù)結(jié)束字符串,int() 函數(shù),轉(zhuǎn)換成整數(shù)
嵌套if得使用,if-elif-else得使用,in得使用,在后面for循環(huán)中,in必不可少