學習python的第四十二天-第五章 模塊與函數

第五章 模塊與函數

這章主要是介紹python模塊和函數的特性。

5.1 程序的結構

python的程序是由包,模塊和函數組成。模塊是處理某一類問題的集合,模塊是由函數和類組成。包是由一系列模塊組成的集合,至少包含__init__.py文件的文件夾,類似於一個完成特定任務的工具箱,python提供了許多有用的工具包,如字符串處理,圖形用戶接口,Web應用,圖形圖像處理。

5.2 模塊

from...import...語句格式如下:

from module_name import function_name

pythonimport語句比較靈活,甚至可以放在條件語句中。模塊內置一些屬性,用於完成特定的任務。如__name____doc__。每個模塊都有一個名稱,例如__name__用於判斷當前模塊是否是程序的主入口,如果當前程序正在被使用,__name__的值爲__main__

if __name__ == "__main__":
    print ("作爲主程序入口")
else:
    print ("被另一個模塊調用")

第一行代碼用於判斷是否作爲主程序運行,如果是運行此程序,就打印“作爲主程序入口”,如果是被別的程序調用,就打印“被另一個模塊調用”。__doc__這個就是文檔字符串,之前介紹過,用於給程序某些內容輸出給用戶看,引導用戶使用程序。

函數

函數就是一段可以重複多次調用的代碼,通過輸入參數值,返回需要的結果。函數名可以是字母,數字或下劃線組成的字符串,但是不能以數字開頭,函數的參數放在一對圓括號中,參數的個數可以有一個或者多個,參數之間用逗號隔開。

#函數的定義
from __function__ import division

def arithmetic (x, y, operator):
    result = {
        "+" : x + y,
        "-" : x - y,
        "*" : x * y,
        "/" : x / y
        }

函數的參數也可以使用默認值,比如這樣:

#函數的定義
from __function__ import division

def arithmetic (x = 1, y = 1, operator = "+" ):
    result = {
        "+" : x + y,
        "-" : x - y,
        "*" : x * y,
        "/" : x / y
        }

這麼寫的話如果不輸入參數的話就默認參數值了。參數可以是變量,元組,列表等內置數據結構。

python還提供另一個標識符“**”。在形式參數前面添加“**”,可以引用一個字典,根據實際參數的賦值表達式生成字典。

*”必須寫在“**”的前面,這是語法規定。

函數的返回使用return語句,return後面可以是變量或表達式。

#多個return語句

def func(x):
    if x > 0:
        return print ("x > 0")
    if x == 0:
        return print ("x = 0")
    if x < 0:
        return print ("x < 0")
print (func(2))

這是return語句的用法,不過不推薦多個return語句的寫法,往往會造成程序的複雜化,重構以後是這樣的:

#多個return語句

def func(x):
    if x > 0:
        result = "x > 0"
    elif x == 0:
        result = "x = 0"
    else x < 0:
        result = "x < 0"
    return result

print (func(2))

函數的嵌套是指在函數的內部調用其他函數,不過函數嵌套不易過多,應控制在3層以內。

#函數嵌套
def sum(a, b):
    return a + b
def sub(a, b):
    return a - b
def func():
    x = 1
    y = 2
    m = 3
    n = 4
    return sum(x, y) * sub(m, n)
print (func())

遞歸函數可以在函數主體內直接或間接的調用自己,即函數的嵌套是函數本身。遞歸是一種程序設計方法,使用遞歸可以減少重複的代碼,使程序變得簡潔。遞歸的過程分爲兩個階段——遞推和迴歸。第一階段,遞歸函數在內部調用自己,第二階段,遞歸函數從後往前返回。遞歸函數需要編寫遞歸結束的條件,否則程序無法結束。一般通過判斷語句結束程序。

`lambda函數的格式:

lambda 變量1, 變量2... : 表達式

通常把lambda賦值給一個變量,變量就可作爲函數使用。用法例如:

sum = lambda x, y : x + y
print (sum)

lambda也成爲表達式。lambda中只能使用表達式,不能使用判斷,循環等多重語句。

許多任務都是由若干個函數組成,這些函數把任務細化,實現明確的功能,最後把這些函數組合起來形成一個完整的模塊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章