def 函式名稱(參數名稱=預設資料):
函式內部程式碼
def say(msg="Hello"): # 參數msg預設資料為"Hello"
print(msg)
第一種:有給參數
say("Hello Function")
# Hello Function
就會使用預設值 msg="Hello"
say()
#Hello
直接用參數的名稱對應資料,且不管順序
def 函式名稱(名稱1,名稱2):
函式內部程式碼
*呼叫函式
以參數名稱對應資料
`函式名稱(名稱2=3,名稱1=5) #不管順序
定義:
def divide(n1,n2):
result=n1/n2
print(result)
呼叫:
情況一
divide(2,4)
#0.5
情況二:參數對應名稱,不管順序
(把2丟入n2,把4丟入n1)
divide(n2=2,n1=4)
#2.0
無限長度的參數
又叫"不定"參數
星號注意:不是全型*
是半形*
def 函式名稱(*無限參數):
函式內部的程式碼
呼叫函式,可傳入無限數量的參數
(你要放幾個都可以)
函式名稱(資料一,資料二,資料三...)
呼叫的時時候
有 參數名稱:按照參數名稱對應
沒有 參數名稱:按照順序
def divide(n1, n2):
print(n1/n2) # / 浮點數除法,會有小數點 # // 才是整數除法
divide(n2=2, n1=4) #2.0 #有參數名稱,按照參數名稱對應
divide(2,4) #0.5 # 沒有參數名稱,按照原順序對應
*函式接受無限參數msgs
用for迴圈,把Tuple列表中的資料一個一個印出來
def say(*msgs)
for msg in msgs: #Tuple方式逐一拿出來
print(msg)
*呼叫函式,傳入三個參數資料
say("HI","oh","you")
for迴圈會逐次印出
#hi,oh,you
def power(base,exp=0): #給exp預設值0,任何數字的0次方都是1
print(base**exp) #兩個*就代表次方, 一個*就代表乘法
power(3,2) #3的2次方
#9
power(3) #未給第2個參數,使用預設值
#3 <= 3 的 0次方 = 1
如果沒有給預設值,參數又沒寫,就會錯誤!
不定的意思就是:參數數量不限
avg(3, 4)
avg(3, 5, 10)
avg(1, 4, -1, -8)
def avg(*ns):
print(ns)
#(3, 4)
#(3, 5, 10)
#(1, 4, -1, -8)
從列表一個一個拿出來印出
avg(3, 4)
avg(3, 5, 10)
avg(1, 4, -1, -8)
def avg(*ns):
for n in ns:
print(ns)
avg(3,4)
#3 4
#3 5 10
#1 4 -1 -8
*計算平均值
avg(3, 4)
avg(3, 5, 10)
avg(1, 4, -1, -8)
def avg(*ns):
sum=0
for n in ns:
sum=sum+n #把每次跑的n做加總放到sum
print(sum/len(ns)) #總和/長度=平均數
# len(ns)=> ns列表的長度
# Tuple
avg(3,4)
#邏輯:呼叫avg()開始跑,把列表每一筆加入sum,
第一圈:跑3,sum=0+3=3
第二圈:跑4,sum=3+4=7
印出:7(sum最後總和)/2圈(長度)
# 3.5 (平均數)
avg(3,5,10)
# 6.0
avg(1, 4, -1, -8)
# 2.0