## 學python的第一天
各位朋友們大家好,今天是我來到CSND的第一天,也是我真正開始學python的第一天,接下來我將會在這里記錄下我每一天學python的程序,希望大家可以一起和我見證這個程序,一起加油努力!
在學習了簡單的輸入
input之后,我開始嘗試寫出判斷陳述句
一個計算體重的簡易程式
代碼如下:
python
weight=80
height=1.75
bmi= weight/height^2
if bmi<18.5:
print("過輕")
if 18.5<=bmi>=25:
print("正常")
elif 25<bmi>28:
print("過重")
elif 28<=bmi>=32:
print("肥胖")
elif bmi>32:
print("嚴重肥胖")
但是執行之后,發現了錯誤
> File line 3, in <module>
> bmi= weight/height^2 TypeError: unsupported operand type(s) for ^: 'float' and 'int'
問題是^這個平方號出錯,開始我還以為是因為我平方號放到了前面的問題,結果我放到后面以后還是報錯
怎么辦呢?
我就去ctrl c再ctrl v 去問了度娘
原來我將 ^ 符號在python錯誤的理解為指數運算,在python中用指數運算一般采用 (**) 或者
pow(a,b)
而 ^ 在python中已經不是進行指數運算的意思了
> ^是按位異或邏輯運算子
當我把^修改成**后,運行成功了!
進一步嘗試
接下來我打算讓這個程式可以進行輸入,而不是簡單的執行和輸出
于是我寫出了這樣一段代碼
weight=input("weight:")
height=input("height:")
bmi= weight/height**2
if bmi<18.5:
print("過輕")
if 18.5<=bmi>=25:
print("正常")
elif 25<bmi>28:
print("過重")
elif 28<=bmi>=32:
print("肥胖")
elif bmi>32:
print("嚴重肥胖")是的,又報錯了。
原來這是因為
input()回傳的資料型別是
str,
str不能直接和整數比較,必須先把
str轉換成整數。
咋辦呢?用
int()函式可以解決
接著我把代碼更改成
python
a= input("weight:")
b= input("height:")
weight=int(a)
height=int(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("嚴重肥胖")
執行了下沒有問題,但是當數字為小數時,又報錯了,
貌似
int()不支持浮點數,所以我又換成了
float()這下執行起來沒有什么問題,可是我怎么輸入數值都只有過輕和正常兩種結果。
不知道哪里出了問題,待我明早查找一下!
**Good night!**
uj5u.com熱心網友回復:
你的判斷出了點狀況, 稍微需要改一下18.5 <= bmi <= 25
25 < bmi < 28
28 <= bmi <= 32
另外, int() 不能轉換小數,如 ‘80.5’, 稍微再改一下:
weight = float(a)
height = float(b)
不錯!!希望你能堅持下去。加油!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/175169.html
