Try   HackMD

9.Python 函式基礎:定義並呼叫函式 By 彭彭

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

函式

函式:程式碼包裝在一個區塊中,方便隨時呼叫使用

程式中使用函式:

1:定義函式:要先定義(建立)函式
2:呼叫函式:才能呼叫(使用)函式

ㄧ.定義函式

  • 基本語法
    def 函式名稱(參數名稱):
    函式內部的程式碼

程式範例 def=define

  1. 定義一個印出Hello的函式 (把Hello印出來
    def sayHello():
    print("Hello")

  2. 定義可以印出任何訊息的函式 (把參數印出來)
    def say(msg): (msg可自行取名是參數)
    print(msg)

  3. 定義一個可以做加法的函式
    def add(n1, n2): (有兩個參數 用逗號隔開)
    result=n1+n2
    print(result)


二.呼叫函式

  • 基本語法
    函式名稱(參數資料)

Column 1 Column 2 Column 3
Text Text Text

程式範例
1.
定義一個印出Hello的函式 (把Hello印出來)
def sayHello():
print("Hello")
呼叫上方定義的函式
sayHello() (呼叫後會跑到函式的裡面)
2.
定義可以印出任何訊息的函式 (把參數印出來)
def say(msg): (msg可自行取名是參數)
print(msg)
呼叫上方定義的函式
say("Hello Function")
say("Hello Python")
參數讓每一次呼叫有彈性
3.
定義一個可以做加法的函式
def add(n1, n2): (有兩個參數 用逗號隔開)
result=n1+n2
print(result)
呼叫上方定義的函式
add(3,4)
add(7,8)

三.回傳值

  • 基本語法
    函式裡面 如果有return 就會強制結束

def 函式名稱(參數名稱)
函式內部的程式碼
return #結束函式,回傳None
2.
def 函式名稱(參數名稱)
函式內部的程式碼
return 資料(數字 字串 布林值 列表 字典 物件) #結束函式,回傳『資料』(回傳值)


程式範例

  1. 函式回傳 None
    def say(msg):
    print(msg)
    return (後面沒有寫東西就會回傳None)
    呼叫函式,取得回傳值
    value=say("Hello Function")
    print(value)

None
函式呼叫的結果就是回傳值

  1. 函式回傳 Hello
    def add(n1, n2): (有兩個參數 用逗號隔開)
    result=n1+n2
    return "Hello"
    呼叫函式 取得回傳值
    value=add(3,4)
    print(value)

Hello 印出Hello

  1. 函式回傳 n1+n2結果
    def add(n1, n2): (有兩個參數 用逗號隔開)
    result=n1+n2
    return result(return加法的結果
    呼叫函式 取得回傳值
    value=add(3,4)
    print(value)

7 印出7
return 從函式內部帶出結果


練習

函式內部的程式碼,若是沒有做函式呼叫 就不會執行
1.
定義函式
def multiply():
print(3*4)

呼叫函式 函式的名稱+小括號
multiple()

12

def multiply(n1,n2):
print(n1*n2)

呼叫函式: 函式的名稱+小括號
multiple(3,4)
multiple(10,8)

12
80

def multiply(n1,n2):
print(n1*n2)

呼叫函式: 函式的名稱+小括號
value=multiply(3,4)
print(value)

12
Nope

def multiply(n1,n2):
print(n1*n2)
return 10
呼叫函式: 函式的名稱+小括號
value=multiply(3,4)
print(value)

12
10

def multiply(n1,n2):
print(n1n2)
return n1
n2
呼叫函式: 函式的名稱+小括號
value=multiply(3,4)
print(value)

12
12

def multiply(n1,n2):
return n1*n2
呼叫函式: 函式的名稱+小括號
value=multiply(3,4)
print(value)

12

def multiply(n1,n2):
return n1*n2
呼叫函式: 函式的名稱+小括號
value=multiply(3,4)+ multiply(10,5)
print(value)

62

  1. 1+2+3..10
    sum=0
    for n in range(1,11):
    sum=sum+n
    print(sum)

55

  1. 程式的包裝
    def calculate():
    sum=0
    for n in rnge(1,11):
    sum=sum+n
    print(sum)

calculate()

55

  1. 函式可用來做程式的包裝:同樣的邏輯可以重複利用
    def calculate():
    sum=0
    for n in rnge(1,11):
    sum=sum+n
    print(sum)

calculate()
calculate()

55
55

  1. 程式包裝:透過參數 把世子變豐富
    def calculate(max):
    sum=0
    for n in rnge(1, max-1):
    sum=sum+n
    print(sum)

calculate(10)
calculate(20)

55
210

結束