37 py爲何要使用函數函數中添加文本註釋 沒有返回值的函數

第一課:爲何要使用函數
首先 要知道 本課程的主要講解的內容爲:
一、爲何要建立函數
二、***函數的概念是:將一段可能別重用的代碼封帳到一個代碼段裏面,而後經過函數的參數 ,控制函數的動態部分。// 如何來定義python中的函數和使用函數 ***
三、如何建立一個函數
四、如何爲函數添加文檔註釋,如何獲取函數的文檔註釋
五、函數如何返回一個值
六、改變函數的參數值
七、關鍵字參數與參數默認值
八、可變參數
九、如何將序列中的元素單獨做爲參數值傳遞給函數
十、函數中的做用域
十一、遞歸函數

#  函數
#  第一講爲何要建立函數
'''
 函數的概念
 如何建立一個函數
 爲函數添加文檔註釋,以及如何獲取文檔註釋
 函數如何返回一個值
 改變函數的參數值
 關鍵字參數與參數默認值
 可變參數
 如何將序列中的元素單獨做爲參數值傳遞給函數
 函數中的做用域
 遞歸函數
'''

# 斐波那契數列  的規則:表示 前2個數加起來以後 等於 接下來一個數 
fibs =[0, 1]
for i in range(10):
    fibs.append(fibs[-2] + fibs[-1])
print(fibs)                           # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
# 這樣的代碼不夠靈活,都須要改變原程序的邏輯代碼,

# 直接在控制檯輸入值 ,而後傳到 執行代碼中 
fibs = [0, 1]
n = int(input('請輸入一個整數:'))    # 這個n的值的來源已經固定了,只能從控制檯輸入,好比我要從數據庫 文本中輸入怎麼辦呢?這樣的話,咱們就須要改變數據來源的方式,還須要改變代碼 這樣的話,咱們就須要用到函數,什麼叫函數:就是把咱們須要大量重用的代碼封裝起來,而後再經過函數的參數來控制函數中動態調整的部分。
for i in range(n):
    fibs.append(fibs[-2] + fibs[-1])
print(fibs)

輸出結果爲
請輸入一個整數:4
[0, 1, 1, 2, 3, 5]
請輸入一個整數:10
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

--------------------------------------------------------------------------
第二課:建立和使用python函數
在python中全部的代碼塊結尾的都要有:   函數也是代碼塊(if while for  def(函數))

# 函數
# 建立和使用函數

# if while for
'''
函數的模板爲:

def funName(param1, param2,...,paramn):
    statement1
    statement2
statement3
'''
上一講的 斐波那契數列 用函數實現

def fibs(n):          # 函數名爲 fibs(n) 
    result = [0, 1]
    for i in range(n):
        result.append(result[-2] + result[-1])
    return result     # 返回值
#print(fibs(10))  # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] 
while True:
    n = input('請輸入一個整數:')
    if n == ':exit':
        break;
    n = int(n)
    print(fibs(n))  # 這裏是直接調用了函數了  n和他的獲取方式沒有任何的關係 

輸出結果爲:
請輸入一個整數:10
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
請輸入一個整數:3
[0, 1, 1, 2, 3]
請輸入一個整數::exit

一個簡單 pythhon的函數的例子:
python中函數的使用的例子
[root@bi-mysql-test scripts_test]# cat python_def02.py  
# coding:utf-8
# 定義函數
def hello():
    print("hello world!")

hello()
[root@bi-mysql-test scripts_test]# /usr/local/python3.7.3/bin/python3 python_def02.py 
hello world!

---------------------------------------------------------------------------------------------
第三課:爲函數添加文檔註釋(重要)
# 函數
# 爲函數添加文檔註釋
'''
多行註釋
# 已# 開頭的爲單行註釋 
'''

"""
多行註釋
"""

def add(x,y):
    '計算兩個數的和'   # 這個就是文檔註釋 
    return x + y
print(add(1,2))

print(add.__doc__)   # 輸出的結果爲: 計算兩個數的和    這個是意思經過程序 輸出文檔註釋 

help(add) 

輸出的結果爲:
3
計算兩個數的和

Help on function add in module __main__:

add(x, y)
    計算兩個數的和

// 這個文檔註釋很是的有用,咱們在 編寫一個library的庫 每一個函數,每一個方法如何來用的話,就能夠經過doc或者help的方式 和這個函數相關的註釋文檔輸出 就能夠生成整個成熟的幫助文檔 
例子:
def hello():
    '這個是hello world'
    print("hello world!")

hello()                 # hello world! 

print(hello.__doc__)   # 這個是hello world
輸出的結果爲:
hello world!
這個是hello world
-------------------------------------------------------------------------------------
第四課:沒有返回值的函數
// 不是 全部的 函數都是要有返回值的,在有些語言裏 將沒有返回值的函數叫作過程 
# 沒有返回值的函數
#  Pascal 過程
#  沒有返回值
# 1. 沒有return語句
# 2. return語句後面沒有跟任何值
# 3. 沒有返回值的函數返回的是None
# 小結: 咱們經過函數的返回值爲None  並不能判斷函數有沒有return
def fun1(flag):
    if flag:
        print("知足條件")
    else:
        print("不知足條件")
fun1(True)                  # 知足條件

def fun2(flag):
    if flag:
        return             # 沒有返回值 退出當前的代碼塊,這個此時的含義和break是同樣的 
    print("知足條件")
fun2(True)                  # 知足條件
fun2(False)                 # 不知足條件
print(fun1(False))          # None

def fun3(flag):
    if flag:
        return 20      
    else:
        return None

print(fun3(True))     # 結果爲: 20      若是爲真返回20 
print(fun3(False))    # 結果爲: None    若是爲假就返回None
相關文章
相關標籤/搜索