0009 如何編寫程序計算所屬星座,一看就懂
時間:2023-07-03 17:03:01 | 來源:網站運營
時間:2023-07-03 17:03:01 來源:網站運營
0009 如何編寫程序計算所屬星座,一看就懂:這節(jié)課,仍然是復習input輸入和if判斷的用法,要做一個根據輸入月份和日期輸出是什么星座的程序。
先來做一下上節(jié)課的練習:
輸入數字1-7判斷是星期幾
程序應該類似如下:
#coding=utf-8
#輸入數字1-7判斷是星期幾
#作者:學哥 時間: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"
測試結果如下:
輸入月份和日期
要判斷星座,先要輸入月份和日期:
#coding=utf-8
#輸入月份和日期輸出是什么星座
#作者:學哥 時間: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ā)現一個問題:月份判斷沒有問題,但是日期判斷有問題,因為日期并不是每個月都是31天,根據月份不同,日期可能有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"
代碼如下:
運行結果如下:
星座如何判斷輸入處理好了,接下來要如何進行判斷呢?
首先是要知道12個星座對應的日期分別是什么:
從這個表格里面,可以分析出一個規(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í)行結果如下:
如何測試到每一種情況程序很長,分支情況也特別多,測試需要盡量測試到每一種情況,程序的每一個分支都要走到
這里的星座可以這樣測試,按照表格當中的星座次序從上往下測試,每個星座測試4個日期
例如:白羊座是從3月21到4月20,那么開始日和結束日肯定要測試的,然后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 零基礎的小白能學會編程嗎?
0002 真的嗎,700元的電腦可以學會編程?
0003 十分鐘組裝一臺電腦開始編程
0004 如何編寫人生的第一行代碼helloworld
0005 鍵盤打字如何練成像黑客一樣的飛速
0006 編程入門python語言之加法計算器
0007 編程入門python語言之四則運算器
第一部分前7課小結和課程規(guī)劃說明及微信群主招募
0008 加減乘除也會算錯?還要編寫程序測試?
因為教程是系列教程,前后關聯性非常強,請大家按照微信公眾號的發(fā)布時間先后次序進行閱讀。
微信公眾號里面直接輸入序號可以查看該序號課程,例如輸入0001可以查看【0001 零基礎的小白能學會編程嗎?】
作者簡介
學哥,二十年編程經驗,歷任程序員,資深程序員,技術經理,項目經理,產品經理,系統(tǒng)架構師,IT總監(jiān)。愛好篆刻,閱讀,美食。
微信號簡介
每天半小時零基礎學編程。大人可以學,小孩也可以學。練打字,用軟件,寫文檔,做網站,做App,編游戲,數據庫,玩硬件,寫程序,3D打印,無人機,機器人。
html,css,javascript,python,php,java,swift,mysql,android,ios,raspberry pi,scratch. 微信公眾號搜索:零基礎學編程。
QQ群簡介
歡迎大家加入QQ群 603559164 零基礎學編程,交流學習,共同進步。