本篇目錄:ssh
1、 函數的介紹函數
2、 函數的定義工具
3、 定義函數的三種類型spa
4、 函數調用的階段code
5、 Return返回值orm
==========================================================================blog
1、 函數的介紹ip
1. 什麼是函數?爲何要有函數?內存
1.1. 具有一個特定功能的工具(類比)>>>函數文檔
1.2 事先準備工具的過程(類比)>>>函數的定義
1.3 工具直接拿來使用,使用其特定的功能>>>函數的調用
1.4 沒有函數的話,程序會有如下缺點:
a. 組織結構不清晰,可讀性差
b. 管理維護難度大,擴展性差
c. 代碼冗餘,重複
#1 定義函數 def print_sym(sym*count): print(sym*count) def print_msg(msg): print('\033[35m%s\033[0m' %msg)
2、函數的定義
1. 函數的語法結構
1.1 函數的結構,def是define的意思,表明定義
def 函數名(參數1,參數2,參數3。。。): ''' 此處用來增長文檔描述,闡述函數的功能,增長可讀性 '''
代碼塊部分
1.2 函數能夠經過函數名直接調用,函數的命名必須能準備反應函數的功能
1.3 代碼塊部分是函數功能實現的代碼
注意點:
# 函數和變量都是佔用內存地址,過程類似,可是函數並非變量
3、定義函數的三種類型
1. 帶參函數
1.1 參數是外部調用函數的部分傳入函數的值
1.2 函數中的代碼塊邏輯中須要函數調用者傳入值
def max2(x,y): ''' 這是一個比較大小的函數,返回較大的數 ''' if x >y: print(x) else: print(y) #調用函數max2 max2(100, 200)
def auth(username,pwd): ''' 該函數用來驗證用戶輸入的用戶名和密碼 ''' if username == inp_name and pwd == inp_pwd: print('登錄成功!') else: print('登錄失敗') #調用auth() auth()
def interactive(): ''' 該函數用來返回用戶輸入的用戶名和密碼 ''' inp_name = input('Username>>>:').strip() inp_pwd = input('Password>>>:').strip() return inp_name, inp_pwd def auth(inp_name, pwd): ''' 該函數用來驗證return的結果是元組類型 ''' res = interactive() x = res[0] y = res[1] print(x) print(y)
2. 無參函數
1.1 函數自己定義無參數,調用者也不須要傳入參數
def print(): ''' 該函數用來展現無參函數 ''' print('\033[35m--------------------\033[0m') print('--------------不須要傳入參數------------')
1.2 函數體的代碼邏輯不須要函數的調用者傳入值
def auth(): ''' 該函數用來展現無參函數 ''' inp_name = input('Username>>>:').strip() inp_pwd = input('Password>>>:').strip() if username == inp_name and pwd == inp_pwd: print('登錄成功!') else: print('登錄失敗') #調用auth() auth()
3. 空函數
什麼事都不作的函數就是一個空函數。
即使是一個空函數,它也會有以下屬性:
['__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__doc__', '__format__', '__get__', '__getattribute__', '__globals__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name']
# Tips:當咱們在寫程序的過程當中,遇到一個卡殼的地方,咱們能夠在函數末尾加一個pass,暫時的跳過思惟的斷路的地方。
4、 函數調用的階段
1. 調用守則: 必須先定義再調用
定義階段不執行代碼,只檢測語法
2. 調用方式:函數名+括號
調用階段根據函數名找到函數的內存地址,執行函數的代碼體
5、 Return返回值
1. 何時該有返回值
函數代碼體執行完畢後,須要返回一個結果給調用者
2. Return返回值的三種狀況
2.1 當函數代碼塊中沒有Return,返回爲None
2.2 若是返回值後跟一個值,就返回值自己
2.3 return返回的值用逗號分割,返回多個值,組成一個元組(類型)
2.4 若是函數體內有多個Return,則返回第一Return的值(Return表明函數結束)
# return返回值沒有類型限制 # 函數內能夠寫多個return,可是隻到第一個return就結束 # return是函數結束的標誌