---
# System prepended metadata

title: 10.Python 函式參數詳解：參數預設值、名稱對應、任意長度參數 By 彭彭
tags: [學習, ' 紀錄']

---

---
title: 10.Python 函式參數詳解：參數預設值、名稱對應、任意長度參數 By 彭彭

tags: 學習, 紀錄
---
10. Python 函式參數詳解：參數預設值、名稱對應、任意長度參數 By 彭彭
{%youtube OOJmhezLd4o %}

## pythin 程式設計入門：函式參數詳解
#### 1. 預設資料
基本語法

def 函數名稱 (參數名稱＝預設資料):
    函式內部的程式碼

程式範例 -函式參數的預設資料
1. 印出Hello
* 參數msg預設資料為 "Hello"
def say(msg="Hello"):
    print(msg)
say()
>Hello 

2. 印出Hello Function
def say(msg="Hello"):
    print(msg)
say("Hello Function")
>Hello Function

#### 2. 名稱對應
基本語法

def 函數名稱 (名稱1,名稱2):
    函式內部的程式碼
呼叫函式，以參數名稱對應資料
函式名稱（名稱2=3,名稱1=5)
(可以指令參數名稱不順序)

程式範例
1. 定義一個可以做除法的函式
* 第一範例
def devide(n1,n2):
    result=n1/n2
    print(result)
    
divide(2,4)
>0.5

* 第二範例-函式參數的名稱對應
def devide(n1,n2):
    result=n1/n2
    print(result)
    
divide(n2=2,n1=4)
>2.0

#### 3. 無限參數
基本語法
def 函數名稱(*無限參數)：
    無限參數以Tuple資料型態處理
    函式內部的程式碼
呼叫函式 可傳入無限數量的參數
函式名稱（資料一,資料二,資料三）

程式範例
函式接受無限參數msgs
def say(*msgs)
    以Tuple的方式處理
    for msg in msgs: (迴圈)
        print(msg)
呼叫函式，傳入三個參數資料
say("Hello","Arbitrary","Arguments")
>Hello
>Arbitrary
>Arguments

### 練習
一. 參數的預設資料:定義一個函式做開方
開方有兩個重要的參數：base,exp
乘法＊ 開方＊＊

1.
def power(base,exp):
    print(base**exp)
power(3,2)
>9

2.設定預設值 若沒輸入特定參數則會用預設值
任何零次方都是1
def power(base,exp=0):
    print(base**exp)
power(3,2)
power(4)
>9
>1

3.除法函式
def divide(n1,n2):
    print(n1/n2)
divide(2,4)
>0.5

3.除法函式:使用參數名稱對應
def divide(n1,n2):
    print(n1/n2)
divide(2,4)
divide(n2=2,n1=4)
>0.5
>2.0

4.無限/不定 參數資料
def avg(*ns):
    print(ns)
avg(3,4)
avg(3,5,10)
avg(1,4-1,-8)

>(3,4)  (Tuple有序列表)
>(3,5,10)
>(1,4-1,-8)


5.
def avg(*ns):
    for n in ns: (把資料中一個一個拿出來)
    print(ns)
avg(3,4)
>3
>4

6.
ns是一個列表一個Tuple有序列表

def avg(*ns):
    sum=0
    for n in ns:
        sum=sum+n
    print(sum/len(ns))
    
avg(3,4)
avg(3,5,10)
avg(1,4-1,-8)

>3.5
>6.0
>-1.0

### End