9-函數初識
阿新 • • 發佈:2018-03-28
mode 裏的 IT 分享 功能 RR 書寫 常用 不常用
三元運算
z = a if a > b else b
函數的初識:
def 函數名():
函數體
1 ll = ‘你好,China‘ 2 def my_lenth(): # 用來定義函數 3 4 # 函數體 5 count = 0 6 for i in ll: 7 count += 1 8 print(count) 9 10 11 my_lenth() #調用函數
函數就是封裝一個功能
函數是以功能為導向的
def:關鍵字,用來聲明一個函數
函數名:函數名的書寫規則與變量一樣
def與函數名之間只有一個空格
函數的執行:
函數名()
用來調用函數
函數的返回值:
盡量不要再函數體中使用print()
return:
在函數中遇到return就結束函數,後面的函數體就不執行。
將值返回給函數的調用者
#無 return
#return count 返回參數
#return None 返回None,不常用
#return 一個值 ,該值是什麽,就返回該值給函數的調用者
#return 多個值 ,將多個值組合成一個元組,返回給函數的調用者
在函數調用者的括號裏的參數叫做實際參數(實參),在函數裏的參數稱之為形式參數(形參)
實參角度:
>按位置傳參(按順序一一對應)
1 def compare(a,b): 2 if a > b: 3 return a 4 elif a == b: 5 return ("一樣大") 6 else: 7 return b 8 9 # return a if a > b else b 10 #三元運算 11 s = compare(6,6) 12 print(s)View Code
>按關鍵字傳參(不按順序,一一對應)
1 def compare(a,b): 2 if a > b:View Code3 return a 4 elif a == b: 5 return ("一樣大") 6 else: 7 return b 8 9 # return a if a > b else b 10 #三元運算 11 s = compare(b = 6,a = 6) 12 print(s)
>混合傳參(既有位置,又有關鍵字)
1 def test1(a,b,c,d,e,f): 2 print(a) 3 print(b) 4 print(c) 5 print(d) 6 print(e) 7 print(f) 8 9 test1(4,5,d=9,c=0,f=9,e=44)View Code
對於混合傳參來說關鍵字參數永遠要在最後面,否則會報錯
SyntaxError: positional argument follows keyword argument
形參角度:
>按位置傳參(按順序一一對應)
>默認參數(傳參則覆蓋,不傳則默認)
1 def info_entry(user_name,sex=‘man‘): 2 with open(‘a‘,mode=‘a‘,encoding=‘UTF-8‘) as f: 3 f.write(‘{_username} {_sex}\n‘.format(_username = user_name, 4 _sex = sex)) 5 6 7 while True: 8 user_name = input("請輸入你的姓名(以1開頭為男性):") 9 if user_name.startswith(‘1‘): 10 user_name = user_name[1:] 11 info_entry(user_name) 12 else: 13 info_entry(user_name,sex=‘woman‘)View Code
默認參數永遠要在位置參數的後面
>動態傳參
9-函數初識