今天學習了函式的區域變數和全域變數:
a=6
def b():
print(a)
b()
最上層的a=6為全域變數,而在def下的變數稱區域變數。若函式中沒有找到答案,
就會找尋函式外的全域變數。
a=5
def l():
a=10
print(a)
l()
print(a)
以上的範例就是在函式中有找到區域變數,所以在列印過程中,會先以區域變數為主
先印10,再印5。接下來用函式回傳實作以前計算FFMI的問題:
def FFMI(h,w,f):
return (w*(1-f))/(h*h)
h=float(input('請輸入身高?'))
w=float(input('請輸入體重?'))
f=float(input('請輸入體脂肪率?'))
ffmi=FFMI(h,w,f)
print('FFMI為',ffmi)
if ffmi<=17:
print('FFMI為',ffmi,'肌肉低於平均值')
elif 17<ffmi<=19:
print('FFMI為',ffmi,'肌肉量在平均值')
elif 19<=ffmi<21:
print('FFMI為',ffmi,'肌肉量高於平均值')
elif 21<ffmi<=22:
print('FFMI為',ffmi,'肌肉量蠻高的')
elif 22<ffmi<=25:
print('FFMI為',ffmi,'肌肉量很高')
elif 25<ffmi<=27:
print('FFMI為',ffmi,'已經很可能有用藥了')
else:
print('FFMI為',ffmi,'不用藥不可能達到')
其實基本上就是算是用函式儲存並呼叫,而選擇結構方面則一模一樣。顯示為:
請輸入身高?1.73
請輸入體重?76.5
請輸入體脂肪率?0.12
FFMI為 22.493233987102812
FFMI為 22.493233987102812 肌肉量很高
今天的學習到此,到今天也已經初步認識函式用法了,感覺頗有進展。