高中生零基礎學python(二)

2020-10-20 12:01:02

學習python的第二天

大家好,現在我們接著昨天遺留的問題

a= input("weight:")
b= input("height:")
weight=float(a)
height=float(b)
bmi= weight/height**2
if bmi<18.5:
    print("過輕")
elif 18.5<=bmi>=25:
    print("正常")
elif 25<bmi>28:
    print("過重")
elif 28<=bmi>=32:
    print("肥胖")
else :
    print("嚴重肥胖")

問題是在執行程式碼的過程中,無論怎麼輸入數值,得到的結果都只有過輕正常兩種結果。

在論壇發帖後,有位熱心的碼友回覆了我,原因竟然是。。。。。。

我的比較符號寫錯了,竟然兩邊都是號,估計我小學數學老師看見得揍死我。

新的知識

接下來,開始學習迴圈語句
python的迴圈有兩種for...in...while

兩者的區別在哪裡呢 ?

  • 我們先來看for...in...

例如,我想將我全班同學的名字依次列印出來,可是幾十個print()恐怕要寫到地老天荒,這時候for...in...就派上用場了!

這裡以我最親密的三位同學舉例

names = ["小紅","小明","李華"]
for name in names:
	print(name)

執行這段程式碼,會依次列印names的每一個元素:

小紅  
小明
李華

所以for x in ...迴圈就是把每個元素代入變數x,然後執行縮排塊的語句。

  • 接下來是while迴圈

例如,我想計算10以內的偶數之和,可以用一個sum變數做累加

sum=0
n=10
while n>0:
    sum=sum+n
    n=n-2
print(sum)

結果正確

30

break

如果我們想提前結束程式,比如當sum>10的時候就結束,break語句可以辦到這件事情

sum=0
n=10
while n>0:
    sum=sum+n
    if sum>10:
        break
    n=n-2
print(sum)

OK,執行結果正確

18

可見break的作用是提前結束迴圈。

continue

如果我們要列印從1~10的數位,但只列印奇數,該怎麼做呢? 讓我們用continue試試

n = 0
while n < 10:
    n = n + 1
    if n % 2 == 0: # 如果n是偶數,執行continue語句
        continue # continue語句會直接繼續進行下一輪迴圈,後面的print()語句不會執行
    print(n)

結果沒有問題

1
3
5
7
9

可見continue的作用是提前結束這一輪迴圈,並直接進行下一輪。

注意和break的區分哦!

今天的學習就到這裡吧!大家都早點休息!