0012 優(yōu)秀的程序員就是用簡(jiǎn)潔優(yōu)美的代碼實(shí)現(xiàn)同樣的功能

上節(jié)課作業(yè)

輸入一個(gè)年月日日期昨稼,輸出是星期幾

程序邏輯提示:

先確認(rèn)一個(gè)錨點(diǎn),也就是1900-1-1為星期一=0,然后計(jì)算輸入的年月日日期和1900-1-1相差多少天敞掘,根據(jù)相差天數(shù)對(duì)7求余越驻,然后根據(jù)偏移量即可算出

關(guān)鍵點(diǎn)在于計(jì)算相差多少天汁政,因?yàn)檩斎氲娜掌诤?900年是跨多年的,需要用循環(huán)累計(jì)計(jì)算當(dāng)中每一年的總天數(shù)缀旁,這個(gè)時(shí)候就需要判斷當(dāng)中每一年是否是閏年還是平年

編程設(shè)計(jì):

輸入年月日

判斷年份的范圍必須在1900到2100之間

判斷月份的范圍必須在1到12之間

根據(jù)年份和月份得出這個(gè)月的最大日期為maxday记劈,大月31/小月30/2月份要根據(jù)閏年與否可能是28或者29

判斷日期的范圍必須在1到maxday之間

如果檢查全部通過,則繼續(xù)處理

相差總天數(shù)=0

年份循環(huán):從1900到輸入的年份并巍,根據(jù)是否閏年目木,相差總天數(shù)累加365天或者366天

月份循環(huán):從1到輸入的月份,求的每個(gè)月的maxday懊渡,相差總天數(shù)累計(jì)31或30或28或29

計(jì)算輸入日期和1日之間相差多少天刽射,相差總天數(shù)累計(jì)該天數(shù)

得到了從1900年1月1日到輸入的年月日之間相差的總天數(shù)

然后根據(jù)公式計(jì)算 week= ( n + x ) % 7 + 1,偏移量為0

代碼如下:


這里注意循環(huán)的方式剃执,采用先循環(huán)年誓禁,再循環(huán)月的方式可以減少循環(huán)次數(shù),要注意<和<=的區(qū)別肾档。

當(dāng)然也可以采用逐日循環(huán)的方式摹恰,那樣循環(huán)次數(shù)就比較多,但是概念上更好理解

結(jié)果如下:

列表類型

列表是最常用的python數(shù)據(jù)類型怒见,格式是用一個(gè)方括號(hào)戒祠,內(nèi)部用逗號(hào)分隔數(shù)據(jù)值。

列表的數(shù)據(jù)值可以有不同的數(shù)據(jù)類型速种,比如字符串姜盈,數(shù)字,列表等等

例如:

list1 = ["a", "b", "c", "d", "e"]

list2 = [1, 1, 2, 3, 5, 8, 13]

list3 = ["a", "b", 3, 8]

list5 = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"]

訪問列表中的值

使用下標(biāo)索引來訪問列表中的值配阵,索引序號(hào)從0開始馏颂,用負(fù)數(shù)則表示從末尾向前倒序序號(hào)

也可以使用方括號(hào)的形式截取列表的一部分

打開"LX終端"示血,進(jìn)入python環(huán)境,輸入以下語(yǔ)句救拉,進(jìn)行體驗(yàn):

更新列表

可以對(duì)列表的數(shù)據(jù)項(xiàng)進(jìn)行修改难审,運(yùn)行以下例子進(jìn)行體會(huì):

追加列表元素

使用list.append()來向列表最后追加一個(gè)元素,運(yùn)行以下例子進(jìn)行體會(huì):

刪除列表元素

使用del語(yǔ)句來刪除列表中的元素亿絮,運(yùn)行以下例子進(jìn)行體會(huì):

如何遍歷列表

遍歷列表有2種辦法告喊,對(duì)應(yīng)的分別是while循環(huán)和for循環(huán)

用函數(shù)len(list)可以獲得列表的元素的總個(gè)數(shù),然后用用一個(gè)計(jì)數(shù)器進(jìn)行while循環(huán):

用for? item in list: 語(yǔ)法遍歷整個(gè) list

循環(huán)的次數(shù)就是list的元素總個(gè)數(shù)派昧,每次循環(huán)將list的元素按次序取出黔姜,賦值給item變量,循環(huán)內(nèi)部的item就是不一樣的值

這里蒂萎,我們開始學(xué)習(xí)一個(gè)新的語(yǔ)法秆吵,for循環(huán)

那么,while循環(huán)和for循環(huán)的區(qū)別在哪里

while循環(huán)根據(jù)條件判讀式?jīng)Q定是否繼續(xù)循環(huán)

for循環(huán)根據(jù)list元素個(gè)數(shù)總數(shù)遍歷list進(jìn)行循環(huán)

一般五慈,如果需要對(duì)list列表循環(huán)就用for纳寂,否則就用while

while和for循環(huán)都可以用break強(qiáng)制退出循環(huán)

改造輸入數(shù)字1-7判斷是星期幾,更簡(jiǎn)單實(shí)現(xiàn)

掌握了列表數(shù)據(jù)類型后泻拦,會(huì)發(fā)現(xiàn)很多程序更容易實(shí)現(xiàn)了

前面做過一個(gè)程序毙芜,輸入數(shù)字1-7判斷是星期幾,原來的代碼是這樣的:

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"

現(xiàn)在只要定義一個(gè)列表争拐,然后直接用序號(hào)索引去訪問就實(shí)現(xiàn)了

注意因?yàn)榱斜硇蛱?hào)是從0開始腋粥,但是輸入是1-7,所以訪問列表的序號(hào)是num-1

完整程序:

結(jié)果如下:

改造星座判斷程序

參照上面程序的做法陆错,將星座判斷程序改造成使用列表來處理,程序會(huì)精簡(jiǎn)很多

打開之前的文件xingzuo.py金赦,另存為xingzuolist.py音瓷,代碼如下:

結(jié)果如下:

請(qǐng)大家認(rèn)真學(xué)習(xí)這個(gè)程序,和以前的寫法有不一樣的地方夹抗,邏輯更嚴(yán)密了

關(guān)鍵的語(yǔ)句绳慎,就在2個(gè)list的定義下面的判斷語(yǔ)句和賦值語(yǔ)句

尤其是注意為何xingzuo_list里面是13個(gè)元素,為什么不是12個(gè)元素呢漠烧,請(qǐng)大家思考理解


課后作業(yè)

1. 繼續(xù)改造上面的星座判斷程序杏愤,日期判斷也用list實(shí)現(xiàn),代碼更簡(jiǎn)潔

2. 輸入郵政編碼前2位數(shù)字判斷輸出是哪個(gè)省份

程序邏輯提示:

去網(wǎng)上搜索一個(gè)郵政列表已脓,里面是關(guān)于郵政編碼前2位各自對(duì)應(yīng)的省份名稱珊楼,然后參考上面的星座判斷程序編寫,注意用到list然后用for循環(huán)度液。

?

往期教程

0001 零基礎(chǔ)的小白能學(xué)會(huì)編程嗎厕宗?

0002 真的嗎画舌,700元的電腦可以學(xué)會(huì)編程?

0003 十分鐘組裝一臺(tái)電腦開始編程

0004 如何編寫人生的第一行代碼helloworld

0005 鍵盤打字如何練成像黑客一樣的飛速

0006 編程入門python語(yǔ)言之加法計(jì)算器

0007 編程入門python語(yǔ)言之四則運(yùn)算器

第一部分前7課小結(jié)和課程規(guī)劃說明及微信群主招募

0008 加減乘除也會(huì)算錯(cuò)已慢?還要編寫程序測(cè)試曲聂?

0009 如何編寫程序計(jì)算所屬星座,一看就懂

0010 人生就像死循環(huán)佑惠,只要不退出就要繼續(xù)運(yùn)行

0011 迷人的斐波拉契數(shù)列朋腋,數(shù)學(xué)到極致就是美,編程同樣如此

因?yàn)榻坛淌窍盗薪坛棠た昂箨P(guān)聯(lián)性非常強(qiáng)旭咽,請(qǐng)大家按照微信公眾號(hào)的發(fā)布時(shí)間先后次序進(jìn)行閱讀。

微信公眾號(hào)里面直接輸入序號(hào)可以查看該序號(hào)課程把将,例如輸入0001可以查看【0001 零基礎(chǔ)的小白能學(xué)會(huì)編程嗎轻专?】

作者簡(jiǎn)介

學(xué)哥,二十年編程經(jīng)驗(yàn)察蹲,歷任程序員请垛,資深程序員,技術(shù)經(jīng)理洽议,項(xiàng)目經(jīng)理宗收,產(chǎn)品經(jīng)理,系統(tǒng)架構(gòu)師亚兄,IT總監(jiān)混稽。愛好篆刻,閱讀审胚,美食匈勋。

微信號(hào)簡(jiǎn)介

每天半小時(shí)零基礎(chǔ)學(xué)編程。大人可以學(xué)膳叨,小孩也可以學(xué)洽洁。練打字,用軟件菲嘴,寫文檔饿自,做網(wǎng)站,做App龄坪,編游戲昭雌,數(shù)據(jù)庫(kù),玩硬件健田,寫程序烛卧,3D打印,無(wú)人機(jī)妓局,機(jī)器人唱星。

html,css,javascript,python,php,java,swift,mysql,android,ios,raspberry pi,scratch. 微信公眾號(hào)搜索:零基礎(chǔ)學(xué)編程雳旅。

QQ群簡(jiǎn)介

歡迎大家加入QQ群 603559164 零基礎(chǔ)學(xué)編程,交流學(xué)習(xí)间聊,共同進(jìn)步攒盈。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市哎榴,隨后出現(xiàn)的幾起案子型豁,更是在濱河造成了極大的恐慌,老刑警劉巖尚蝌,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迎变,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡飘言,警方通過查閱死者的電腦和手機(jī)衣形,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姿鸿,“玉大人谆吴,你說我怎么就攤上這事】猎ぃ” “怎么了句狼?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)热某。 經(jīng)常有香客問我腻菇,道長(zhǎng),這世上最難降的妖魔是什么昔馋? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任筹吐,我火速辦了婚禮,結(jié)果婚禮上秘遏,老公的妹妹穿的比我還像新娘丘薛。我一直安慰自己,他們只是感情好垄提,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布榔袋。 她就那樣靜靜地躺著周拐,像睡著了一般铡俐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妥粟,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天审丘,我揣著相機(jī)與錄音,去河邊找鬼勾给。 笑死滩报,一個(gè)胖子當(dāng)著我的面吹牛锅知,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播脓钾,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼售睹,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了可训?” 一聲冷哼從身側(cè)響起昌妹,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎握截,沒想到半個(gè)月后飞崖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谨胞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年固歪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胯努。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡牢裳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出康聂,到底是詐尸還是另有隱情贰健,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布恬汁,位于F島的核電站伶椿,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏氓侧。R本人自食惡果不足惜脊另,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望约巷。 院中可真熱鬧偎痛,春花似錦、人聲如沸独郎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)迫横。三九已至统扳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贪婉,已是汗流浹背反粥。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人才顿。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓莫湘,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親郑气。 傳聞我的和親對(duì)象是個(gè)殘疾皇子幅垮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Python 是一種相當(dāng)高級(jí)的語(yǔ)言,通過 Python 解釋器把符合語(yǔ)法的程序代碼轉(zhuǎn)換成 CPU 能夠執(zhí)行的機(jī)器碼...
    Python程序媛閱讀 1,891評(píng)論 0 3
  • Python簡(jiǎn)介 Python歷史 Python 是由 Guido van Rossum 在八十年代末和九十年代初...
    莫名其妙的一生閱讀 1,040評(píng)論 0 2
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程尾组,因...
    小菜c閱讀 6,358評(píng)論 0 17
  • 【1011今日剽悍】 妹妹說她的研究生考試現(xiàn)在開始報(bào)名和選專業(yè)了军洼,她不知道如何選擇,也不知道去問誰(shuí)演怎。 作為一個(gè)沒有...
    好聽的暖陽(yáng)閱讀 296評(píng)論 0 0
  • 月雖在天為地眼 萬(wàn)花雖艷存吾心 寄愁無(wú)勝寒江暮 萬(wàn)物皆理皆存氣
    默子江閱讀 406評(píng)論 1 0