『無為則無心』Python函式 — 28、Python函式的簡單應用

繁華似錦Fighting發表於2021-07-13

1、函式巢狀呼叫

所謂函式巢狀呼叫指的是,一個函式裡面又呼叫了另外一個函式。

(1)函式巢狀的示例

def testB():
    print('---- testB start----')
    print('這裡是testB函式執行的程式碼...(省略)...')
    print('---- testB end----')

def testA():
    print('---- testA start----')
    testB()
    print('---- testA end----')

testA()

(2)輸出結果

如下圖所示:

image

(3)函式巢狀的執行流程說明

image

說明:如果函式A中,呼叫了另外一個函式B,那麼先把函式B中的任務都執行完畢之後,才會回到上次函式A執行的位置。

2、Python函式的簡單應用

(1)列印線條

1)列印一條橫線

def print_line():
    print('-' * 20)

print_line()
"""
輸出結果:
--------------------
"""

2)列印多條橫線

# 1. 列印一條橫線
def print_line():
    print('-' * 20)

# 2. 函式巢狀呼叫,實現多條橫線
def print_lines(num):
    i = 0
    while i < num:
        print_line()
        i += 1

print_lines(5)
"""
輸出結果:
--------------------
--------------------
--------------------
--------------------
--------------------
"""

(2)函式計算

1)求三個數之和

# 1. 任意三個數之和
def sum_num(a, b, c):
    return a + b + c

result = sum_num(1, 2, 3)
print(result)  # 6

2)求三個數平均值

# 2. 任意三個數求平均值
def average_num(a, b, c):
    # 先求和 再除以3
    sumResult = sum_num(a, b, c)
    return sumResult / 3

result = average_num(1, 2, 3)
print(result)  # 2.0

(3)列印圖形

# 1.列印三角形
def print_triangle1():
    for i in range(8):
        for j in range(0, i):
            print("*", end=" ")

        for j in range(i, 8):
            print("$", end=" ")

        print("")


print_triangle1()

"""
輸出結果:
$ $ $ $ $ $ $ $
* $ $ $ $ $ $ $
* * $ $ $ $ $ $
* * * $ $ $ $ $
* * * * $ $ $ $
* * * * * $ $ $
* * * * * * $ $
* * * * * * * $
"""

# 2、列印三角形
def print_triangle2():
    for i in range(8):
        for j in range(0, 8 - 1 - i):
            print("*", end=" ")
        for k in range(8 - i, 8):
            print("$", end=" ")

        print("")


print_triangle2()

"""
輸出結果:
* * * * * * *
* * * * * * $
* * * * * $ $
* * * * $ $ $
* * * $ $ $ $
* * $ $ $ $ $
* $ $ $ $ $ $
$ $ $ $ $ $ $
"""

# 3、列印正三角
def print_triangle3():
    for i in range(8):
        for j in range(0, 8 - i):
            print(end=" ")
        for k in range(8 - i, 8):
            print("*", end=" ")

        print("")  # 換行


print_triangle3()

"""
輸出結果:
       *
      * *
     * * *
    * * * *
   * * * * *
  * * * * * *
 * * * * * * *
"""

# 4、列印倒三角
def print_triangle4():
    for i in range(7):
        for j in range(0, i):
            print(end=" ")

        for j in range(i, 7):
            print("*", end=" ")

        print("")  # 換行


print_triangle4()

"""
輸出結果:
* * * * * * *
 * * * * * *
  * * * * *
   * * * *
    * * *
     * *
      *
"""

3、函式的說明文件

(1)函式的說明文件的作用

思考:定義一個函式後,程式設計師如何書寫程式能夠快速提示這個函式的作用?

答:用註釋。

思考:如果程式碼多,我們是不是需要在很多程式碼中找到這個函式定義的位置才能看到註釋?如果想更方便的檢視函式的作用怎麼辦?

答:使用函式的說明文件。

(2)函式說明文件的語法

定義函式的說明文件:在定義函式時,可以在函式內部編寫函式的說明文件。編寫函式的說明文件非常簡單,其實直接在函式內的第一行註釋的字串就是函式的說明文件。可以用單引號,也可以使用三引號,但是我們說明函式的時候一行會描述不清楚,通常我們會使用三引號來定義函式的說明文件。

def 函式名(引數):
    """ 說明文件的位置 """
    程式碼
    ......

(3)檢視函式的說明文件

help(函式名)

help()是Python中的內建函式。

help()函式作用:通過help()函式可以查詢Python中的函式的用法(檢視函式的說明文件)。

(4)快速體驗

def sum_num(a, b):
    """ 求和函式 """
    return a + b

help(sum_num)

# 函式的說明文件的高階使用
def sum_num1(a, b):
    """
    求和函式sum_num1
    :param a: 引數1
    :param b: 引數2
    :return: 返回值
    """
    return a + b

help(sum_num1)

"""
輸出結果:
sum_num(a, b)
    求和函式

sum_num1(a, b)
    求和函式sum_num1
    :param a: 引數1
    :param b: 引數2
    :return: 返回值
"""

(5)擴充:標準的函式說明文件

# -> int:表示返回值型別
# 引數後的:型別,表示接收此引數的型別。
def fn(a:int,b:bool,c:str='hello') -> int:
    '''
    這是一個文件字串的示例

    函式的作用:。。。。。
    函式的引數:
        a,作用,型別,預設值。。。。
        b,作用,型別,預設值。。。。
        c,作用,型別,預設值。。。。
    '''
    return 10

help(fn)

結果如下:

image

相關文章