第五課:專家研究幾十年的體脂率算法被陝西一男子十分鐘做出來了

2021-01-21 東東老師講編程

今天這節課我們來做一個微小型項目:體脂率計算器。先給大家展示一下成品效果看一下。

if......else語句

if翻譯過來就是如果,那麼else翻譯為中文就是否則。我們經常說程序這個詞語,其實從廣義上來講,程序無非就因果關係罷了。也就是我們這節課要講的if.....else語句。可能有的同學還很蒙,啥意思啊?舉個簡單的例子:如果我是男生,我就去男廁所,否則,我就去女廁所。我相信大部分同學都能明白我說的這句話。那麼如果把這句話翻譯成代碼,那該如何翻譯呢?來看下面代碼:

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

存進'user'這個變量名中

user=input('請輸入你的性別:')# 進行判斷:如果用戶輸入的是'男生'if user=='男生':# 輸出,進入男廁所 print('進入男廁所') # 否則else: # 輸出,進入女廁所 print('進入女廁所')

上面這段代碼哪怕我加了注釋也許也有一大部分同學看不懂,為什麼有的地方加冒號,有的地方不用加?為什麼有的地方有空格,有的地方不用,感覺好像看得懂,又好像看不懂。

沒關係,我們一點點來解釋。實際上去掉那些看不懂的冒號啊,空格什麼的,單純將英文單詞翻譯過來其實也很好理解:

將用戶輸入的性別儲存進user這個變量名當中,再將變量名拿出去跟』男生『或者』女生『作比較,如果跟』男生『這個字符串進行比較,進而匹配成功,那就進男廁所,否則就進女廁所。

那麼這個時候實際上就體現出了python語言的自然性,我們經常聽到說python是最接近於自然的語言,換句話說,實際上python就是把我們平常說的話用英文代碼的方式表達出來,只不過python多加了一些代碼獨有的語法罷了,如果將這些語法去掉,那我們再看,實際上就是一句很流暢的人類語言,不信我們將python語法去掉 展現出來看看↓:

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

如果user與'男生'相等,輸出進入男廁所

if user=='男生',print('進入男廁所')

否則,進入女廁所

else,print('進入女廁所')

就這麼簡單!

python語法

好,那麼接下來講講語法。我們說雖然python是最接近自然語言的一個計算機語言,但是他也是有自己的語法的。比如說冒號。

冒號

有的同學看到冒號覺得奇怪,為什麼有的地方有冒號,有的地方沒有,那麼我們到底什麼時候應該加冒號,什麼時候不加呢?很簡單,其實相信細心的同學已經發現了,有判斷語句的地方都有冒號,那什麼又是判斷語句呢?在我們上節課的文章當中,我給大家普及了一個東西叫』比較運算符『,沒有仔細看的同學可以回過去看看比較運算符這一章,比較運算符說白了,其實就是我們數學當中的比大小的大於號小於號等於號而已,最多加了個』!=『,意思是非等於也就是我們說的不等於的不等號。

那麼這麼一講同學們再回去看看剛才的代碼,是不是發現,user=='男生'後面帶了個小小的冒號呢?那有的同學又說了,老師,else後面沒有判斷語句啊,那他為啥有,他是充錢玩家?NO NO NO,else雖然後面沒有判斷語句,但是他也是要有冒號滴,這是黨的硬性規定,不明白的回去好好翻翻黨章。開玩笑的,其實else後面加冒號就跟1+1=2一樣,大家能告訴我為啥1+1=2嗎?其實都是一樣的道理。並且還有一點必須強調注意:if後面必須加判斷語句,而else後面除了冒號,啥也不能加,判斷語句也不能加,這也是python的語法。

當然,今天我們也只是說判斷語句後面必須加冒號,但並沒有說其他的特殊的代碼不能加,這個就放到以後遇到了跟大家說明標註一下。

空格

那麼空格又是什麼語法呢?什麼情況下應該加空格,而什麼情況下不加空格,其實我覺得加不加空格這個語法,是最容易理解的,至少在我看來是如此。

那大家會看到,在上面代碼當中,只有兩行代碼加了空格,,一個是』print('進入男廁所')『,另外一個是』print('進入女廁所')『,這兩行代碼有一個共同點就是:他們都是判斷下的結果。

』print('進入男廁所')『,是程序判斷到用戶輸入了』男生『並且跟我們預先設置的』男生『字符串匹配成功後出現的結果,既然是user=='男生':匹配成功後的結果,那理當在他的判斷下空四格,表示進入男廁所這個結果是user=='男生':的匹配成功後幹的事兒。那麼進入女廁所也是同樣的道理,我就不多做贅述了。

if....elif.....else語句

先跟大家解釋一下elif,是else與if的結合體,縮寫為elif,意思是:否則如果。

那麼有的運行過程序的同學同樣會發現一件事情就是,我們如果輸入』男生『,那麼程序會告訴我們,進入男廁所,但是如果我是女士,我不論輸入什麼話,他都會出現,進入女廁所。哪怕我們輸入『奧裡給』他也會說,進入女廁所,那作為一個程序來說他是很不嚴謹的,甚至我們可以認為這是個bug,既然是bug,那我們就需要想辦法修復他。這個時候就用到我們的if....elif.....else語句了。

經常聽雞湯文的同學可能聽過這麼一句話:這個世界不是非黑即白的。這句話在我們if....elif.....else語句裡面體現的淋漓盡致。而if.....else語句是典型的非黑即白,不是if就是else,反正兩個判斷結果我佔一個。但是if....elif.....else語句出現了中庸之道。

我們程序說,只要你不輸男生,哪怕你輸入個『男』而非『男生』,我都會輸出進入女廁所這句話。那這怎麼辦啊?看下面這段代碼:

# 讓用戶輸入他的性別,

並將用戶輸入的性別存進'user'這個變量名中

user=input('請輸入你的性別:')# 進行判斷:如果用戶輸入的是'男生'if user=='男生':# 輸出,進入男廁所 print('進入男廁所') # 否則如果用戶輸入的是'女生'

elif user=='女生':

# 輸出,進入女廁所

print('進入女廁所') # 否則else: # 輸出,不要亂輸哦 print('不要亂輸哦')

其實看完這段代碼我相信大部分同學都已經能看明白了,如果用戶輸入的是』男生『,那麼程序輸出,進入男廁所,否則如果用戶輸入』女生『,則輸出進入女廁所,否則直接告訴用戶不要亂輸哦。

那麼需要注意的是:elif跟if一樣,也是必須要在後面加判斷語句,而且是強制性的。而且elif的語句與他相對應的判斷結果必須是在if與else的中間不可以出現以elif開頭或者結尾的現象,否則就會出現語法錯誤。但是elif可以在中間出現多個elif語句,因為我們一般情況下不可能只有三個選項,也許會有很多個選項,那這個時候,我們就只能在中間有幾個選項加幾個elif了。舉個例子:如果今天是禮拜一,那麼我就去跟馬雲談談生意,否則如果今天是禮拜二,那麼我就跟迪麗熱巴去三亞遊泳,否則如果今天是禮拜三,我就去我在澳洲的私人別墅打王者榮耀,否則如果今天是禮拜四,那麼我就去跟川普談談美國疫情的事兒,否則如果今天是禮拜五,那麼我就去跟迪迦奧特曼說說保衛地球的事兒,否則我就告訴玩家不要亂輸,沒有其他安排了,那有的同學問我,為啥沒有周六周天對不起因為我實在編不下去了。

課後練習

在我們生活當中,有許多同學因為自己的體重發愁,有的人怎麼吃都吃不胖,有的人卻喝口水都長肉,那我們如何去用最科學的方式來定義自己是胖是瘦呢?在我們國際慣例當中,有一個值叫BMI值,這個BMI值就是用最科學的方式來計算我們身材的胖瘦的。BMI具體的計算公式就是:體重(kg)/身高(m)*身高。也就是用我們每個人的具體體重除以身高的平方。那麼如何利用BMI看胖瘦呢?看下面:

成人的BMI數值:過輕:低於18.5正常:18.5-25過重:25-28肥胖:28-32非常肥胖, 高於32

那麼接下來我們就用代碼將這個程序做出來,那麼最終效果可以參照開頭的視頻。

eval()函數

下面這個程序可能有兩個點大家不太懂,第一個是eval()函數。eval()函數其實他的作用很簡單。

我們一般情況下input()函數用戶輸入的數字,例如說用戶的體重是83公斤,那麼假如說他輸入了83,input()函數會自動將用戶輸入的83這個數字帶上引號變成字符串變量,那我們之前說過,不論是整數也好,抑或是小數也好,只要它帶上引號,那麼他就是字符串,字符串我們說是不能夠進行加減乘除這樣的數學運算的。用字符串進行加減乘除會出現語法報錯。那我們想讓用戶輸入的數字變成整數類型怎麼辦,看下面:

我們之前說過int()除了是整型類型的縮寫以外,他還是我們python當中的函數保留字,他的作用就是將帶有引號的數字強制轉換為整數,同樣的浮點數類型float()函數也是同樣的道理,意味著將字符串類型強制轉換為小數。

那麼這個時候問題來了,有的同學的體重是整數,有的同學的體重是小數,我們在input()前面加int()也不是,加float()也不是,為了數據的準確性我們只能加eval()函數,eval()函數的特性就是可以兼顧浮點數跟整數兩種類型,也就是說,我們的用戶不論輸入小數或者整數,只要有eval()函數,他都可以兼容。

BMI算法

如果經常看書的同學或者經常看類似視頻的同學一定會聽過一個詞語叫算法。那本節課我們也有一個算法是BMI算法,當然這個BMI算法是百度過來的是固定的公式。但是大家內心一定要有算法這個概念。那麼下面的代碼流程的話其實也很簡單:

第一步:讓用戶輸入他的個人數據,包括體重與身高。

第二步:然後我們將用戶輸進來的兩個參數賦值給weight與height這兩個變量名。

第三步:再將這兩個已經有值的變量名套進BMI公式。套完以後再將這個公式的最終計算答案賦值給BMI這個變量名。

第四步:利用BMI進行判斷,判斷他的計算結果的區域,再通過不同的區域,去進行具體的操作。

具體代碼如下:

weight=eval(input('輸入您的體重(kg):'))hight=eval(input('輸入您的身高(m):'))BMI=weight/hight**2if BMI>32:print('過於肥胖')elif 32>BMI>=28: print('肥胖')elif 28>BMI>=25: print('稍重')elif 25>BMI>=18.5: print('正常')elif 18.5>BMI: print('過輕')else: print('不要亂輸')

好的,這期就到這裡啦,我們下期見,拜拜!

相關焦點

  • 什麼是體脂率 體脂率怎麼計算
    對於正在積極減肥的朋友來說,減肥實際上就是減肉、減體重,當我們站在體重秤上稱重的時候,我們看到的體重雖然僅僅是一個數字,但是實際上這個數字當中包含有骨骼、肌肉、體液以及脂肪組織等,如果想要更好地知道減肥的成效,我們就需要學會測量體脂率。那什麼是體脂率?體脂率怎麼計算?下面我們一起來詳細了解一下!
  • Keep 體脂秤肉身評測:顏值在線,體脂率等數據是否精準?
    Keep今天發布了一款體脂秤,這也是跑步機繼後的第二款智能硬體。我們提前以媒體身份拿到這款售價199的產品,在對它測評之餘,特地去了一兆韋德、威爾斯、浦東市民體質檢測中心、社區小健身房專門去做了體脂率等數據的身體檢測——只為對比確認下,Keep 這款顏值在線的體脂秤,實際用起來到底精準嗎?
  • 別再沉迷體脂率了,90%健身房測的都不準
    體脂率一定是常聽到的一個詞。每個健身房逮到你,二話不說第一件事,先做個體測,測得你心神不寧,頭昏眼花。買不買課,報不報班,那都是後面的事。 長期健身的朋友也會經常討論到體脂率,什麼我最佳體脂率又下降了呀,離馬甲線(腹肌)不遠了呀。似乎它就是區分菜鳥和大神的專業術語。就如安德瑪之於耐克。
  • 女性最新的體脂率出爐,過了40歲的女性,體脂率多少合格?
    並且女性的年紀不斷地增長,體脂率也會發生改變。女性最新的體脂率出爐體脂率和標準體重的變化也是有聯繫的,因此體脂率也會發生一點的變化,這裡有最新出爐的關於女性的體脂率表,來了解一下。體脂率的正常值女性在20%~25%,但是因為年紀的影響,根據不同的年齡層,劃分了三個階段。
  • 體脂率標準是多少
    核心提示:體脂率標準是多少?在日常生活中,有很多人提到減肥就以為是減的體重,其實並不是這樣的,體重並不是值得減肥者關注的一個指標,大家更需要了解的是體脂率。那麼,體脂率標準是多少呢?相信有很多的減肥者都想了解這個問題,我們一起來看下面的介紹。 體脂率標準是多少?
  • 怎麼降體脂率 降低體脂率的方法有哪些
    那怎麼降體脂率?降低體脂率的方法有哪些?下面我們一起來詳細了解一下!怎麼降體脂率?(1)均衡的營養攝入生活中很多減肥的人,總是會熱衷於節食。但實際上這樣的方法減肥不僅會導致身體營養缺失,同時也會導致肌肉流失,對減脂是絲毫沒有幫助的。對於怎麼降體脂率這個問題,首先就是需要滿足自身營養的攝入,尤其是蛋白質、碳水的補充,能夠減脂增肌,對降低體脂率是非常有幫助的。
  • 男性體脂率多少正常
    核心提示:不管是男性朋友的身體還是女性朋友的身體,都存在一個體脂率的問題,這對於身體的健康狀況來講有著非常重要的作用,所以說大家對於自身的體脂率一定要做全面以及詳細的了解,那麼男性體脂率多少正常呢?一起來了解一下吧。
  • 體脂率是如何判斷肥胖的?
    體脂率能作為肥胖的標準嗎評價肥胖的標準有很多種,肥胖的評價也與各種因素有關,不同的年齡、性別、種族、骨骼的類型都有可能影響肥胖的評價,不同的肥胖評價標準也各有各的側重點。體脂可以直觀地反映出人體內脂肪的含量,對肥胖有較為精準的評價,但是體脂的檢測比較複雜,並且需要專門的儀器才能夠進行測量,不適用於一般的日常檢測。
  • 如何有效降低體脂率 想降低體脂率該怎麼做
    核心提示:能夠擁有苗條好身材是很多人夢寐以求的,但是現實卻是一上稱的時候不僅體重超標了,就連計算體脂率的時候也明顯指標上升。其實減肥瘦身並不是只看重減少體重,而是需要從根本上降低體脂率,最終才能夠讓自己更好地維持苗條好身材。
  • 怎麼降低體脂率更有效
    核心提示:據相關研究表明,男性的體脂率在 10 – 15%屬於正常,而對於女性而言,體脂率在18 – 25% 左右比較合適,如果越過此值就屬於肥胖,不僅會影響美觀,對身體健康也沒有什麼好處,那麼,怎麼降低體脂率更有效呢?我們一起來看下面的介紹。 怎麼降低體脂率更有效?
  • 體脂率不同對比圖,驚呆了
    但其實真正健康的朋友,他會去了解自己的體脂率。什麼是體脂率呢? 體脂率就是你體內脂肪佔身體其他成分的比例。我們要知道,同樣重量的脂肪和肌肉,脂肪的體積要比肌肉大得多的多,所以,我們減肥的時候,是要減掉脂肪,降低自己的體脂率。 而且有研究顯示,只要減去5%的體脂,你身體發生疾病的風險就可以大大降低。因為在你減肥的開始階段,會減掉大量不健康的「內臟脂肪」,它們之前堆積在你的內臟周圍,壓迫器官、血管,影響你的健康。
  • 想要降低體脂率,減掉惱人贅肉,可以這麼做
    想要降低體脂率,減掉惱人贅肉,可以這麼做很多人都覺得減肥只需要體重下來了就是有效果的,其實並不是這樣。真正的減肥不僅僅是為了減輕自己的體重,更重要的是能夠擁有優美、健碩的肌肉線條,而且減肥成功之後體型也不反彈。減肥首先就要認清楚減肥的對象是什麼,而不是一味的盲目減輕體重。
  • 降低體脂率的8個方法
    核心提示:肥胖已經成為社會性問題,而形成肥胖的主要原因是體內脂肪含量過高,根本誘因還是與生活習慣有很大關係,大家想要降低體脂率,就要找對方法,能減少走彎路,更能提高減肥成果。以下內容中推薦,有助於降低體脂率的8個方法,希望大家可以嘗試堅持練習。
  • 女性體脂率怎麼降低
    女性的體脂率一旦升高,身材就會出現變形的情況,因為體脂率高了身材必然會發胖,身材發胖後如果不儘快減肥,肥胖持續發展在想要減肥成功就有很大困難了,有些身材已經開始發胖的女性朋友很想知道有沒有什麼好的方法可以降低體脂率,那麼今天就來帶大家了解女性體脂率怎麼降低?
  • 家用體脂秤靠譜嗎?專家:不要迷信體脂秤
    體脂率是指人體內脂肪重量佔總體重的比例,它反映人體內脂肪含量的多少。體脂率 = (脂肪重量 ÷ 體重) × 100%,?成年人的體脂率正常範圍分別是:女性20-25%,男性15-18%。評果君一直有個疑問:這一兩百塊錢的家用體脂秤和醫院專業測量得出的體脂率會有區別嗎???
  • 怎麼知道體脂率
    核心提示:怎麼知道體脂率其實可以直接計算自己的體脂率,計算的方法是(身體脂肪總重量÷體重)×100%,在計算後承認的女性20%~25%,成年的男性15%~18%,如果超過20%就代表已經屬於肥胖的範圍之內,所以要根據個人的體重情況進行計算。在身體如果特別肥胖的情況下,要及時控制自己的體重,最終才能夠達到保持身材的目的。
  • 體脂率計算器有什麼用
    核心提示:體脂率計算器是通過計算人體的脂肪佔身體比重的百分比,來了解一個人體內的脂肪含量。如果一個人偏胖的話,體脂率就會比較高,如果一個人比較瘦的話,體脂率就會偏低。測量體脂率可以清楚地知道我們的身體處於哪個狀態,想要增肥或者減肥的人都可以通過監控體脂率來達到目的。
  • 第五次國民體質監測要開始了!重慶市民的體脂率、肺活量等都要測試
    9月12日,記者從市體育科學研究所獲悉,我市將於近日正式啟動全國第五次國民體質監測工作。渝中區開展國民體質監測技術培訓據介紹,此次國民體質監測將在紮實抓好常態化疫情防控、確保科學規範操作的前提下有序開展。
  • 體脂率合不合格,3個方法測出來
    相信大家都是聽說過體脂率這個名稱的,特別是喜歡健身的朋友會經常測量一下自己的體脂率,來看看最近健身到底有沒有效果,體脂率說白了就是身體裡面脂肪含量所佔比例,那麼如何測體脂率?專業人士指出測量的方法有好幾種,下面就給大家做詳細的介紹。
  • 3次測量,體脂差10%?體脂秤是智商稅嗎?
    體脂秤準確嗎 為了測量體脂稱的準確度,我做了一個小實驗。 在15分鐘內,用同一個體脂秤,測量了3次體重和體脂率,分別是——早餐飯後/洗完澡頭髮溼潤/吹乾頭髮但用張老師手機中的APP測量。 3次的測量數據是, 早餐飯後:體重57.2公斤,體脂率21.7%,體脂含量12.4公斤。