---
# System prepended metadata

title: 函式
tags: [python, 函式]

---

# 函式

* 基本語法
def 函式名稱(參數):
  (要做的事)

若要呼叫
則直接打 函式名稱(參數)
沒有呼叫的話不會執行

* return（結束函式）
函式跑完預設 回傳none
也可以指定回傳想要的東西

def s(a,b)
  print(a+b)

如果只是打這樣 呼叫函式就會輸出兩數相加
也可以改成 return 資料
例如return a+b 但不會輸出
除非打 v=s(a+b) print(v)
（v就是回傳值，跟程式碼無關，如果只打return就會輸出none）

* 一定要return?
不一定，return資料或是直接在code裡面輸出皆可
看情況~
但如果要跑兩次函式，可以搭配return
例如 return a+b
v=s(2,3)*s(6,7)  表示跑兩次函式，回傳兩個值再做運算


* 預設資料
函式可以在()中先預設資料(也可以不要)
def a(n1,n2=3) 表示已經預設n2之值
呼叫的時候可以不用指定
如果打a(1)表示n1=1 n2用指定的值


* 參數自訂順序
def a(n1,n2)  後面打a(2,3)通常是對應n1 n2
但也可以寫a(n2=3,n1=2)表示對應 

* 不定參數資料 括號裡面前方新增*
def a(*s)  （s是參數名稱）
參數用列表tuple呈現
使用的時候可以用for迴圈

    算平均數的函式：
    def avg(*s):
      for n in s:
        sum=sum+n
      print(sum/len(s))

   呼叫
    avg(2,3,4,5)
    
    
###### tags: `python` `函式`