iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
自我挑戰組

呼蛇容易遣蛇難,要就當大蟒蛇!一起來Python吧 !系列 第 11

Day 11 函式參數詳解:參數預設值、名稱對應、任意長度參數

  • 分享至 

  • xImage
  •  

函式參數的預設資料

基本語法
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

無限參數*

無限長度的參數
又叫"不定"參數

星號注意:不是全型*
是半形*


基本語法
  • 無限參數以Tuple資料型態處理
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

如果沒有給預設值,參數又沒寫,就會錯誤!

範例-無限(不定)參數:

不定的意思就是:參數數量不限


解法1: Tuple形式 (有序列表)

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)

解法2:使用for迴圈

從列表一個一個拿出來印出

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


上一篇
Day 10 函式基礎:定義並呼叫函式
下一篇
Day 12 Python Module 模組的載入與使用
系列文
呼蛇容易遣蛇難,要就當大蟒蛇!一起來Python吧 !30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言