第五課:震驚!國(guó)外專家研究幾十年的體脂率算法居然被陜西一男子十分鐘做出來(lái)了而晒!

今天這節(jié)課我們來(lái)做一個(gè)微小型項(xiàng)目:體脂率計(jì)算器蝇狼。先給大家展示一下成品效果看一下。

(抱歉視頻放不進(jìn)去倡怎,想觀看的可以關(guān)注東東老師講編程迅耘,私信,視頻課堂觀看呦监署!)


if......else語(yǔ)句


if翻譯過(guò)來(lái)就是如果颤专,那么else翻譯為中文就是否則。我們經(jīng)常說(shuō)程序這個(gè)詞語(yǔ)钠乏,其實(shí)從廣義上來(lái)講栖秕,程序無(wú)非就因果關(guān)系罷了。也就是我們這節(jié)課要講的if.....else語(yǔ)句晓避〈睾矗可能有的同學(xué)還很蒙,啥意思扒喂啊暑塑?舉個(gè)簡(jiǎn)單的例子:如果我是男生,我就去男廁所锅必,否則事格,我就去女廁所。我相信大部分同學(xué)都能明白我說(shuō)的這句話。那么如果把這句話翻譯成代碼驹愚,那該如何翻譯呢远搪?來(lái)看下面代碼:




# 讓用戶輸入他的性別,并將用戶輸入的性別


存進(jìn)'user'這個(gè)變量名中


user=input('請(qǐng)輸入你的性別:')

# 進(jìn)行判斷:如果用戶輸入的是'男生'

if user=='男生':

? ? # 輸出么鹤,進(jìn)入男廁所

? ? print('進(jìn)入男廁所')

? ? # 否則

else:

? ? # 輸出终娃,進(jìn)入女廁所

? ? print('進(jìn)入女廁所')

上面這段代碼哪怕我加了注釋也許也有一大部分同學(xué)看不懂,為什么有的地方加冒號(hào)蒸甜,有的地方不用加棠耕?為什么有的地方有空格,有的地方不用柠新,感覺(jué)好像看得懂窍荧,又好像看不懂。

沒(méi)關(guān)系恨憎,我們一點(diǎn)點(diǎn)來(lái)解釋蕊退。實(shí)際上去掉那些看不懂的冒號(hào)啊,空格什么的憔恳,單純將英文單詞翻譯過(guò)來(lái)其實(shí)也很好理解:


將用戶輸入的性別儲(chǔ)存進(jìn)user這個(gè)變量名當(dāng)中瓤荔,再將變量名拿出去跟’男生‘或者’女生‘作比較,如果跟’男生‘這個(gè)字符串進(jìn)行比較钥组,進(jìn)而匹配成功输硝,那就進(jìn)男廁所,否則就進(jìn)女廁所程梦。


那么這個(gè)時(shí)候?qū)嶋H上就體現(xiàn)出了python語(yǔ)言的自然性点把,我們經(jīng)常聽(tīng)到說(shuō)python是最接近于自然的語(yǔ)言,換句話說(shuō)郎逃,實(shí)際上python就是把我們平常說(shuō)的話用英文代碼的方式表達(dá)出來(lái)褒翰,只不過(guò)python多加了一些代碼獨(dú)有的語(yǔ)法罷了影暴,如果將這些語(yǔ)法去掉探赫,那我們?cè)倏绰追停瑢?shí)際上就是一句很流暢的人類語(yǔ)言毛仪,不信我們將python語(yǔ)法去掉 展現(xiàn)出來(lái)看看↓


user=input('請(qǐng)輸入你的性別:')


如果user與'男生'相等箱靴,輸出進(jìn)入男廁所


if user=='男生'衡怀,print('進(jìn)入男廁所')


否則,進(jìn)入女廁所


else,print('進(jìn)入女廁所')


就這么簡(jiǎn)單够委!


python語(yǔ)法

好怖现,那么接下來(lái)講講語(yǔ)法。我們說(shuō)雖然python是最接近自然語(yǔ)言的一個(gè)計(jì)算機(jī)語(yǔ)言潘拨,但是他也是有自己的語(yǔ)法的饶号。比如說(shuō)冒號(hào)讨韭。

冒號(hào)

有的同學(xué)看到冒號(hào)覺(jué)得奇怪,為什么有的地方有冒號(hào)狰闪,有的地方?jīng)]有埋泵,那么我們到底什么時(shí)候應(yīng)該加冒號(hào)丽声,什么時(shí)候不加呢雁社?很簡(jiǎn)單霉撵,其實(shí)相信細(xì)心的同學(xué)已經(jīng)發(fā)現(xiàn)了徒坡,有判斷語(yǔ)句的地方都有冒號(hào)喇完,那什么又是判斷語(yǔ)句呢?在我們上節(jié)課的文章當(dāng)中不脯,我給大家普及了一個(gè)東西叫’比較運(yùn)算符‘,沒(méi)有仔細(xì)看的同學(xué)可以回過(guò)去看看比較運(yùn)算符這一章海洼,比較運(yùn)算符說(shuō)白了跨新,其實(shí)就是我們數(shù)學(xué)當(dāng)中的比大小的大于號(hào)小于號(hào)等于號(hào)而已坏逢,最多加了個(gè)’域帐!=‘是整,意思是非等于也就是我們說(shuō)的不等于的不等號(hào)肖揣。

那么這么一講同學(xué)們?cè)倩厝タ纯磩偛诺拇a浮入,是不是發(fā)現(xiàn)龙优,user=='男生'后面帶了個(gè)小小的冒號(hào)呢?那有的同學(xué)又說(shuō)了事秀,老師,else后面沒(méi)有判斷語(yǔ)句啊易迹,那他為啥有睹欲,他是充錢玩家窘疮?NO NO NO,else雖然后面沒(méi)有判斷語(yǔ)句闸衫,但是他也是要有冒號(hào)滴,這是黨的硬性規(guī)定含懊,不明白的回去好好翻翻黨章。圖片衅胀,開(kāi)玩笑的,其實(shí)else后面加冒號(hào)就跟1+1=2一樣酥筝,大家能告訴我為啥1+1=2嗎滚躯?其實(shí)都是一樣的道理。并且還有一點(diǎn)必須強(qiáng)調(diào)注意:if后面必須加判斷語(yǔ)句嘿歌,而else后面除了冒號(hào)掸掏,啥也不能加,判斷語(yǔ)句也不能加宙帝,這也是python的語(yǔ)法丧凤。




當(dāng)然,今天我們也只是說(shuō)判斷語(yǔ)句后面必須加冒號(hào)步脓,但并沒(méi)有說(shuō)其他的特殊的代碼不能加愿待,這個(gè)就放到以后遇到了跟大家說(shuō)明標(biāo)注一下。


空格


那么空格又是什么語(yǔ)法呢靴患?什么情況下應(yīng)該加空格仍侥,而什么情況下不加空格,其實(shí)我覺(jué)得加不加空格這個(gè)語(yǔ)法鸳君,是最容易理解的农渊,至少在我看來(lái)是如此。


那大家會(huì)看到或颊,在上面代碼當(dāng)中砸紊,只有兩行代碼加了空格,囱挑,一個(gè)是’print('進(jìn)入男廁所')‘醉顽,另外一個(gè)是’print('進(jìn)入女廁所')‘,這兩行代碼有一個(gè)共同點(diǎn)就是:他們都是判斷下的結(jié)果看铆。

’print('進(jìn)入男廁所')‘徽鼎,是程序判斷到用戶輸入了’男生‘并且跟我們預(yù)先設(shè)置的’男生‘字符串匹配成功后出現(xiàn)的結(jié)果,既然是user=='男生':匹配成功后的結(jié)果弹惦,那理當(dāng)在他的判斷下空四格否淤,表示進(jìn)入男廁所這個(gè)結(jié)果是user=='男生':的匹配成功后干的事兒。那么進(jìn)入女廁所也是同樣的道理棠隐,我就不多做贅述了石抡。

if....elif.....else語(yǔ)句


先跟大家解釋一下elif,是else與if的結(jié)合體,縮寫為elif助泽,意思是:否則如果啰扛。


那么有的運(yùn)行過(guò)程序的同學(xué)同樣會(huì)發(fā)現(xiàn)一件事情就是嚎京,我們?nèi)绻斎搿猩敲闯绦驎?huì)告訴我們隐解,進(jìn)入男廁所鞍帝,但是如果我是女士,我不論輸入什么話煞茫,他都會(huì)出現(xiàn)帕涌,進(jìn)入女廁所。哪怕我們輸入‘奧里給’他也會(huì)說(shuō)续徽,進(jìn)入女廁所蚓曼,那作為一個(gè)程序來(lái)說(shuō)他是很不嚴(yán)謹(jǐn)?shù)模踔廖覀兛梢哉J(rèn)為這是個(gè)bug钦扭,既然是bug纫版,那我們就需要想辦法修復(fù)他。這個(gè)時(shí)候就用到我們的if....elif.....else語(yǔ)句了客情。


經(jīng)常聽(tīng)雞湯文的同學(xué)可能聽(tīng)過(guò)這么一句話:這個(gè)世界不是非黑即白的其弊。這句話在我們if....elif.....else語(yǔ)句里面體現(xiàn)的淋漓盡致。而if.....else語(yǔ)句是典型的非黑即白裹匙,不是if就是else瑞凑,反正兩個(gè)判斷結(jié)果我占一個(gè)。但是if....elif.....else語(yǔ)句出現(xiàn)了中庸之道概页。


我們程序說(shuō)籽御,只要你不輸男生,哪怕你輸入個(gè)‘男’而非‘男生’惰匙,我都會(huì)輸出進(jìn)入女廁所這句話技掏。那這怎么辦啊项鬼?看下面這段代碼:


# 讓用戶輸入他的性別哑梳,


并將用戶輸入的性別存進(jìn)'user'這個(gè)變量名中


user=input('請(qǐng)輸入你的性別:')

# 進(jìn)行判斷:如果用戶輸入的是'男生'

if user=='男生':

? ? # 輸出,進(jìn)入男廁所

? ? print('進(jìn)入男廁所')

? ? # 否則如果用戶輸入的是'女生'

elif user=='女生':


? # 輸出绘盟,進(jìn)入女廁所

? ? print('進(jìn)入女廁所')

? ? # 否則

else:

? ? # 輸出鸠真,不要亂輸哦

? ? print('不要亂輸哦')


其實(shí)看完這段代碼我相信大部分同學(xué)都已經(jīng)能看明白了,如果用戶輸入的是’男生‘龄毡,那么程序輸出吠卷,進(jìn)入男廁所,否則如果用戶輸入’女生‘沦零,則輸出進(jìn)入女廁所祭隔,否則直接告訴用戶不要亂輸哦。



那么需要注意的是:elif跟if一樣路操,也是必須要在后面加判斷語(yǔ)句疾渴,而且是強(qiáng)制性的千贯。而且elif的語(yǔ)句與他相對(duì)應(yīng)的判斷結(jié)果必須是在if與else的中間不可以出現(xiàn)以elif開(kāi)頭或者結(jié)尾的現(xiàn)象,否則就會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤搞坝。但是elif可以在中間出現(xiàn)多個(gè)elif語(yǔ)句搔谴,因?yàn)槲覀円话闱闆r下不可能只有三個(gè)選項(xiàng),也許會(huì)有很多個(gè)選項(xiàng)桩撮,那這個(gè)時(shí)候己沛,我們就只能在中間有幾個(gè)選項(xiàng)加幾個(gè)elif了。舉個(gè)例子:如果今天是禮拜一距境,那么我就去跟馬云談?wù)勆猓駝t如果今天是禮拜二垮卓,那么我就跟迪麗熱巴去三亞游泳垫桂,否則如果今天是禮拜三,我就去我在澳洲的私人別墅打王者榮耀粟按,否則如果今天是禮拜四诬滩,那么我就去跟特朗普談?wù)劽绹?guó)疫情的事兒,否則如果今天是禮拜五灭将,那么我就去跟迪迦奧特曼說(shuō)說(shuō)保衛(wèi)地球的事兒疼鸟,否則我就告訴玩家不要亂輸,沒(méi)有其他安排了庙曙,那有的同學(xué)問(wèn)我空镜,為啥沒(méi)有周六周天----------對(duì)不起因?yàn)槲覍?shí)在編不下去了。



課后練習(xí)


在我們生活當(dāng)中捌朴,有許多同學(xué)因?yàn)樽约旱捏w重發(fā)愁吴攒,有的人怎么吃都吃不胖,有的人卻喝口水都長(zhǎng)肉砂蔽,那我們?nèi)绾稳ビ米羁茖W(xué)的方式來(lái)定義自己是胖是瘦呢洼怔?在我們國(guó)際慣例當(dāng)中,有一個(gè)值叫BMI值左驾,這個(gè)BMI值就是用最科學(xué)的方式來(lái)計(jì)算我們身材的胖瘦的镣隶。BMI具體的計(jì)算公式就是:體重(kg)/身高(m)*身高。也就是用我們每個(gè)人的具體體重除以身高的平方诡右。那么如何利用BMI看胖瘦呢安岂?看下面:


成人的BMI數(shù)值:

過(guò)輕:低于18.5

正常:18.5-25

過(guò)重:25-28

肥胖:28-32

非常肥胖, 高于32


那么接下來(lái)我們就用代碼將這個(gè)程序做出來(lái),那么最終效果可以參照開(kāi)頭的視頻稻爬。


eval()函數(shù)


下面這個(gè)程序可能有兩個(gè)點(diǎn)大家不太懂嗜闻,第一個(gè)是eval()函數(shù)。eval()函數(shù)其實(shí)他的作用很簡(jiǎn)單桅锄。


我們一般情況下input()函數(shù)用戶輸入的數(shù)字琉雳,例如說(shuō)用戶的體重是83公斤样眠,那么假如說(shuō)他輸入了83,input()函數(shù)會(huì)自動(dòng)將用戶輸入的83這個(gè)數(shù)字帶上引號(hào)變成字符串變量翠肘,那我們之前說(shuō)過(guò)檐束,不論是整數(shù)也好,抑或是小數(shù)也好束倍,只要它帶上引號(hào)被丧,那么他就是字符串,字符串我們說(shuō)是不能夠進(jìn)行加減乘除這樣的數(shù)學(xué)運(yùn)算的绪妹。用字符串進(jìn)行加減乘除會(huì)出現(xiàn)語(yǔ)法報(bào)錯(cuò)甥桂。那我們想讓用戶輸入的數(shù)字變成整數(shù)類型怎么辦,看下面:

我們之前說(shuō)過(guò)int()除了是整型類型的縮寫以外邮旷,他還是我們python當(dāng)中的函數(shù)保留字黄选,他的作用就是將帶有引號(hào)的數(shù)字強(qiáng)制轉(zhuǎn)換為整數(shù),同樣的浮點(diǎn)數(shù)類型float()函數(shù)也是同樣的道理婶肩,意味著將字符串類型強(qiáng)制轉(zhuǎn)換為小數(shù)办陷。



那么這個(gè)時(shí)候問(wèn)題來(lái)了,有的同學(xué)的體重是整數(shù)律歼,有的同學(xué)的體重是小數(shù)民镜,我們?cè)趇nput()前面加int()也不是,加float()也不是险毁,為了數(shù)據(jù)的準(zhǔn)確性我們只能加eval()函數(shù)制圈,eval()函數(shù)的特性就是可以兼顧浮點(diǎn)數(shù)跟整數(shù)兩種類型,也就是說(shuō)辱揭,我們的用戶不論輸入小數(shù)或者整數(shù)离唐,只要有eval()函數(shù),他都可以兼容问窃。


BMI算法


如果經(jīng)澈蓿看書的同學(xué)或者經(jīng)常看類似視頻的同學(xué)一定會(huì)聽(tīng)過(guò)一個(gè)詞語(yǔ)叫算法域庇。那本節(jié)課我們也有一個(gè)算法是BMI算法嵌戈,當(dāng)然這個(gè)BMI算法是百度過(guò)來(lái)的是固定的公式。但是大家內(nèi)心一定要有算法這個(gè)概念听皿。那么下面的代碼流程的話其實(shí)也很簡(jiǎn)單:


第一步:讓用戶輸入他的個(gè)人數(shù)據(jù)熟呛,包括體重與身高。


第二步:然后我們將用戶輸進(jìn)來(lái)的兩個(gè)參數(shù)賦值給weight與height這兩個(gè)變量名尉姨。


第三步:再將這兩個(gè)已經(jīng)有值的變量名套進(jìn)BMI公式庵朝。套完以后再將這個(gè)公式的最終計(jì)算答案賦值給BMI這個(gè)變量名。


第四步:利用BMI進(jìn)行判斷,判斷他的計(jì)算結(jié)果的區(qū)域九府,再通過(guò)不同的區(qū)域椎瘟,去進(jìn)行具體的操作。


具體代碼如下:


weight=eval(input('輸入您的體重(kg):'))

hight=eval(input('輸入您的身高(m):'))

BMI=weight/hight**2

if BMI>32:

? ? print('過(guò)于肥胖')

elif 32>BMI>=28:

? ? print('肥胖')

elif 28>BMI>=25:

? ? print('稍重')

elif 25>BMI>=18.5:

? ? print('正常')

elif 18.5>BMI:

? ? print('過(guò)輕')

else:

? ? print('不要亂輸')



好的侄旬,這期就到這里啦肺蔚,我們下期見(jiàn),拜拜儡羔!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宣羊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子汰蜘,更是在濱河造成了極大的恐慌仇冯,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件族操,死亡現(xiàn)場(chǎng)離奇詭異赞枕,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)坪创,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)姐赡,“玉大人莱预,你說(shuō)我怎么就攤上這事∠罨” “怎么了依沮?”我有些...
    開(kāi)封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)枪狂。 經(jīng)常有香客問(wèn)我危喉,道長(zhǎng),這世上最難降的妖魔是什么州疾? 我笑而不...
    開(kāi)封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任辜限,我火速辦了婚禮,結(jié)果婚禮上严蓖,老公的妹妹穿的比我還像新娘薄嫡。我一直安慰自己,他們只是感情好颗胡,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布毫深。 她就那樣靜靜地躺著,像睡著了一般毒姨。 火紅的嫁衣襯著肌膚如雪哑蔫。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音闸迷,去河邊找鬼嵌纲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛稿黍,可吹牛的內(nèi)容都是我干的疹瘦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼巡球,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼呀非!你這毒婦竟也來(lái)了爽篷?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎采郎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體吆视,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡念脯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窖维。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片榆综。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖铸史,靈堂內(nèi)的尸體忽然破棺而出鼻疮,到底是詐尸還是另有隱情,我是刑警寧澤琳轿,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布判沟,位于F島的核電站,受9級(jí)特大地震影響崭篡,放射性物質(zhì)發(fā)生泄漏挪哄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一琉闪、第九天 我趴在偏房一處隱蔽的房頂上張望迹炼。 院中可真熱鬧,春花似錦颠毙、人聲如沸疗涉。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)咱扣。三九已至,卻和暖如春涵防,著一層夾襖步出監(jiān)牢的瞬間闹伪,已是汗流浹背沪铭。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留偏瓤,地道東北人杀怠。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像厅克,于是被迫代替她去往敵國(guó)和親赔退。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

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