今天是鐵人競賽第5天,前兩天介紹了Python的基本資料型別、序列結構、程式迴圈。今天要來介紹
函式(function):可以指派他們參數,也可以把他們當作引數傳給其他函式,以及回傳值。
語法: def functionName():
一樣用「:」和縮排來表示function區塊
def GetArea(height,width):
area = width * height
return area
ret1 = GetArea(6,9)
print('ret1--->',ret1)
# 輸出結果
ret1---> 54
def GetArea(height,width):
area = width * height
print('height--->',height)
print('width--->',width)
return area
ret1 = GetArea(6,9)
ret2 = GetArea(width=6, height=9)
# 輸出結果
height---> 6
width---> 9
height---> 9
width---> 6
def rightFunction(first, second = 12):
return first
def wrongFunction(first=12, second): # 出錯 non-default argument follows default argument
return first
def sumNumber(*params):
total = 0
for param in params:
total +=param
return total
print("2個參數: sumNumber(7,8) = %d" % sumNumber(7,8))
print("3個參數: sumNumber(9,7,8) = %d" % sumNumber(9,7,8))
print("2個參數: sumNumber(7,8,12,11) = %d" % sumNumber(7,8,12,11))
# 輸出結果
2個參數: sumNumber(7,8) = 15
3個參數: sumNumber(9,7,8) = 24
2個參數: sumNumber(7,8,12,11) = 38
def run_otherFunc(func):
func(7,8)
run_otherFunc(GetArea)
# 輸出結果
height---> 7
width---> 8
若有相同名稱的全域和區域變數,以區域變數為優先
以下範例示範在scope這個function裡面沒有定義變數var2,
可是因為var2是全域變數所以在scope裡面還是可以讀取到var2
def scope():
var1 = "區域變數"
print(var1, var2) # 輸出為 區域變數 20
var1 = "全域變數"
var2 =20
scope()
print(var1, var2) # 輸出為 全域變數 20
# 輸出結果
區域變數 20
全域變數 20
python除了可以自己定義function,還有python內建函數,以下列出比較常用的函數
example1 = abs(-10)
print(example1) #取得絕對值 輸出 10
example2 = chr(66)
print(example2) #取得整數66的字元 輸出 B
example3 = divmod(33,6)
print(example3) #取得33除以6的商數和餘數 輸出 (5, 3)
example4 = float(33)
print(example4) #轉成浮點數 輸出 33.0
example5 = hex(33)
print(example5) #轉成16進位 輸出 0x21
example6 = int(22.79)
print(example6) #轉成整數(無條件捨去) 輸出 22
example7 = oct(33)
print(example7) #轉成八進位 輸出 0o41
example8 = ord("B")
print(example8) #取得Unicode編碼 輸出 66
example9 = pow(2,5)
print(example9) #取得2的5次方 輸出 32
example10 = round(22.79)
print(example10) #轉成整數(四捨五入) 輸出 23
example11 = sum([11,22,33,44])
print(example11) #取得list的總和 輸出 110
如果想要引用其他module裡面的function、class、variable。就需要使用import的方式引用進來。
類似要引用Nunpy、Pandas、Matplotlib...
import的方法有四種
1.
import 套件名稱
套件名稱.函數名稱 # 使用函數的方式
from 套件名稱 import *
函數名稱 # 使用函數的方式
from 套件名稱 import 涵式1, 涵式2, .....
涵式1 # 使用函數的方式
from 套件名稱 as 別名
別名.函數名稱 # 使用函數的方式