1. 程式人生 > >Python_從零開始學習_(21) 函式的返回值和巢狀呼叫

Python_從零開始學習_(21) 函式的返回值和巢狀呼叫

1.  函式的返回值

  • 在程式開發中,  有時候,  會希望 一個函式執行結束後告訴呼叫者一個結果,  以便呼叫者針對具體的結果做後續的處理
  • 返回值 是函式 完成工作 後,  最後 給呼叫者的 一個結果
  • 在函式中適用 return 關鍵字可以返回結果
  • 呼叫函式一方,  可以 使用變數 接收 函式的返回結果

注意: return 表示返回,  後續的程式碼都不會被執行

def sun_sum(num1, num2):
    """"兩個數求和"""
    result = num1 + num2
    # 使用返回值,  告訴呼叫函式一方計算的結果
    return result
    # 注意: return 就表示返回, 下方的程式碼不會被執行

# 使用變數接收


sum_result = sun_sum(2, 5)

print("計算結果: %d" % sum_result)

 

2.  函式的巢狀呼叫

  • 一個函式裡面 有呼叫了 另一個函式,  這就是函式巢狀呼叫
  • 如果函式 test2 中,  呼叫了另外一個函式 test1
  • 那麼執行到 text1 函式時,  會先把函式 text2 中的任務都執行完
  • 才會回到 text2 中呼叫函式 text1 的位置,  繼續執行後續的程式碼
def test1():
    print("*" * 5)


def test2():
    print("-" * 5)

    # 函式的巢狀呼叫
    test1()


test2()

 

3.  函式巢狀的演練 ---- 列印分割線

多變的需求 -----

需求 1 

  • 定義一個 print_line 函式能夠列印 * 組成的 一條分割線
def print_line1():
    print("*" * 50)


print_line1()

需求 2

  • 定義一個函式能夠列印 由任意字元組成 的分隔線
def print_line2(line):
    print(line * 50)


print_line2("-")

需求 3

  • 定義一個函式能夠列印 任意重複次數 的分割線
def print_line3(line, num):
    print(line * num)


print_line3("+", 50)

需求 4 

  • 定義一個函式能夠列印 5 行 的分隔線,  分割線要求符合 需求 3

提示:  工作中針對需求的變化,  不要輕易修改之前的封裝好的函式

def print_line4(line, num):
    """
    列印多行分割線
    :param line: 分割線字元
    :param num: 分割線數量
    """
    row = 0
    while row < 5:
        print(line * num)

        print("")  # 換行
        row += 1


print_line4("-", 50)

需求 5

  •  定義一個函式能夠自定義列印行數 的分隔線,  分割線要求符合 需求 3
def print_line3(line, num):
    print(line * num)


def print_line5(num):
    """
    :param num: 要列印的行數
    """
    row = 0
    while row < num:
        print_line3("+", 50)  # 巢狀呼叫
        print("")
        row += 1

print_line5(5)