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

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