這節(jié)課洲愤,仍然是復(fù)習(xí)input輸入和if判斷的用法摇幻,要做一個根據(jù)輸入月份和日期輸出是什么星座的程序横侦。
先來做一下上節(jié)課的練習(xí):
輸入數(shù)字1-7判斷是星期幾
程序應(yīng)該類似如下:
#coding=utf-8
#輸入數(shù)字1-7判斷是星期幾
#作者:學(xué)哥? 時間:2017/1/1
num=int(input("week num"))
if num==1:
? ? print "Monday"
elif num==2:
? ? print "Tuesday"
elif num==3:
? ? print "Wednesday"
elif num==4:
? ? print "Thursday"
elif num==5:
? ? print "Friday"
elif num==6:
? ? print "Saturday"
elif num==7:
? ? print "Sunday"
else:
? ? print "error input"
測試結(jié)果如下:
輸入月份和日期
要判斷星座,先要輸入月份和日期:
#coding=utf-8
#輸入月份和日期輸出是什么星座
#作者:學(xué)哥? 時間:2017/1/1
month=int(input("month:"))
day=int(input("day:"))
print "month:",month,"day:",day
檢查月份和日期是否正確
if month<1 or month>12:
? ? print "month must in 1-12"
if day<1 or day>31:
? ? print "day must in 1-31"
運行一下程序:
發(fā)現(xiàn)一個問題:月份判斷沒有問題绰姻,但是日期判斷有問題枉侧,因為日期并不是每個月都是31天,根據(jù)月份不同狂芋,日期可能有30天或者31天榨馁,或者28天,如何檢查呢
判斷修改如下:
if month<1 or month>12:
? ? print "month must in 1-12"
else:
? ? if month==2:
? ? ? ? if day<1 or day>28:
? ? ? ? ? ? print "day must in 1-28"
? ? elif month==4 or month==6 or month==9 or month==11:
? ? ? ? if day<1 or day>30:
? ? ? ? ? ? print "day must in 1-30"
? ? else:
? ? ? ? if day<1 or day>31:
? ? ? ? ? ? print "day must in 1-31"
代碼如下:
運行結(jié)果如下:
星座如何判斷
輸入處理好了帜矾,接下來要如何進(jìn)行判斷呢翼虫?
首先是要知道12個星座對應(yīng)的日期分別是什么:
從這個表格里面屑柔,可以分析出一個規(guī)律來:在一個月里面,最多只可能有2種星座
例如珍剑,1月份掸宛,如果小于等于19日,則是摩羯座招拙,否則就是水瓶座
例如唧瘾,2月份,如果小于等于18日别凤,則是水瓶座饰序,否則就是雙魚座
以此類推,此規(guī)則具有一致性规哪,因此求豫,判斷代碼如下:
if month==1:
? ? if day<=19:
? ? ? ? xingzuo="mojie"
? ? else:
? ? ? ? xingzuo="shuiping"
elif month==2:
? ? if day<=18:
? ? ? ? xingzuo="shuiping"
? ? else:
? ? ? ? xingzuo="shuangyu"
......
最后將星座增加到輸出中
print "month:",month,"day:",day,"xingzuo:",xingzuo
完整的程序
執(zhí)行結(jié)果如下:
?如何測試到每一種情況
程序很長,分支情況也特別多诉稍,測試需要盡量測試到每一種情況蝠嘉,程序的每一個分支都要走到
這里的星座可以這樣測試,按照表格當(dāng)中的星座次序從上往下測試均唉,每個星座測試4個日期
例如:白羊座是從3月21到4月20,那么開始日和結(jié)束日肯定要測試的肚菠,然后3月底日期舔箭,和4月1日
上面測試的日期就是3月21日,3月31日蚊逢,4月1日层扶,4月20日
依次類推,其他星座都測試4個日期烙荷,這樣可以盡量測試到所有的分支
課后作業(yè):
輸入一個年份镜会,判斷輸出閏年或者平年
提示1:閏年的規(guī)則,能被4整除的年份是閏年终抽,但要排除那些能被100整除并且不能被400整除的年份
提示2:判斷是否能整除戳表,利用求余運算符%,如果能被4整除昼伴,就是 x%4==0
例如:2016是閏年匾旭,2000年是閏年,2100年是平年
往期教程
0001 零基礎(chǔ)的小白能學(xué)會編程嗎圃郊?
0002 真的嗎价涝,700元的電腦可以學(xué)會編程?
0003 十分鐘組裝一臺電腦開始編程
0004 如何編寫人生的第一行代碼helloworld
0005 鍵盤打字如何練成像黑客一樣的飛速
0006 編程入門python語言之加法計算器
0007 編程入門python語言之四則運算器
第一部分前7課小結(jié)和課程規(guī)劃說明及微信群主招募
0008 加減乘除也會算錯持舆?還要編寫程序測試色瘩?
因為教程是系列教程伪窖,前后關(guān)聯(lián)性非常強,請大家按照微信公眾號的發(fā)布時間先后次序進(jìn)行閱讀居兆。
微信公眾號里面直接輸入序號可以查看該序號課程覆山,例如輸入0001可以查看【0001 零基礎(chǔ)的小白能學(xué)會編程嗎?】
作者簡介
學(xué)哥史辙,二十年編程經(jīng)驗汹买,歷任程序員,資深程序員聊倔,技術(shù)經(jīng)理晦毙,項目經(jīng)理,產(chǎn)品經(jīng)理耙蔑,系統(tǒng)架構(gòu)師见妒,IT總監(jiān)。愛好篆刻甸陌,閱讀须揣,美食。
微信號簡介
每天半小時零基礎(chǔ)學(xué)編程钱豁。大人可以學(xué)耻卡,小孩也可以學(xué)。練打字牲尺,用軟件卵酪,寫文檔,做網(wǎng)站谤碳,做App溃卡,編游戲,數(shù)據(jù)庫蜒简,玩硬件瘸羡,寫程序,3D打印搓茬,無人機犹赖,機器人。
html,css,javascript,python,php,java,swift,mysql,android,ios,raspberry pi,scratch. 微信公眾號搜索:零基礎(chǔ)學(xué)編程卷仑。
QQ群簡介
歡迎大家加入QQ群 603559164 零基礎(chǔ)學(xué)編程冷尉,交流學(xué)習(xí),共同進(jìn)步系枪。