python開發編程基礎:函數定義,返回值,參數
阿新 • • 發佈:2017-07-26
pan span true 調用 odin pwd 括號 問題 pre
一,函數的定義
1,函數mylen叫做函數名
#函數名
#必須由字母下劃線數字組成,不能是關鍵字,不能是數字開頭
#函數名還是要有一定的意義能夠簡單說明函數的功能
2,def是關鍵字 (define)
3,():必須寫
4,函數體內盡量寫註釋,方便查看代碼
5,函數的調用:函數名+括號
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 def mylen(): #函數名 5 ‘‘‘ 6 計算字符串長度的函數 這裏寫的是註釋,方便查看代碼 7 ‘‘‘ 8 s = ‘hello world‘ 9length = 0 10 for i in s: 11 length += 1 12 return length #函數的返回值
13 leng = mylen() #函數的調用 14 print(leng)
二,函數的返回值 return
1,函數返回值可以是任意的數據類型
2,如果有返回值:必須要用變量接收才會有效果
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 def func(): 5 b = [1,2,3] 6 return b #可以是任何數據類型 7 ret = func() #有返回值,就需要用變量來接收 8 print(ret)
3,函數可以沒有返回值,默認返回給None
函數的返回值為None有三種情況
1.不寫返回值
2.只寫一個return
3.return None (幾乎不用)
4,return的作用:結束一個函數的執行
5,函數的返回值不為None,有返回值
返回一個值(一個變量)
返回多個值(多個變量),多個值之間用逗號區分
接收:可以用一個變量接收,以元組的形式返回
也可以用多個變量接收,返回幾個就用幾個變量去接收 相當於解壓式接收
1 #!/usr/bin/env python2 #_*_coding:utf-8_*_ 3 4 def func6(): 5 ‘‘‘返回一個值‘‘‘ 6 a =123 7 return a 8 9 def func7(): 10 ‘‘‘返回多個值‘‘‘ 11 a = 123 12 b = ‘abc‘ 13 return a,b 14 15 ret = func7() 16 print(ret) 17 m,n,k = func7()
三,函數的參數
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 #函數的參數 5 #實參和形參 6 #實參:函數調用的時候傳入的參數值 7 #形參:是函數定義的時候定義的參數名 8 #參數可以是任意的數據類型 9 #可以傳遞0個或多個參數 10 11 def mylen(s): #參數接收:形式參數,形參 12 ‘‘‘ 13 計算字符串長度的函數 ——函數的功能 14 參數s:接收要計算的字符串 ——參數的信息 15 return:要計算的字符串長度 ——返回值的信息 16 ‘‘‘ 17 length = 0 18 for i in s: 19 length += 1 20 return length 21 length = mylen(‘hello world‘) #參數傳入:實際參數,實參 22 print(length) 23 24 25 #調用函數時傳參數: 26 #按照位置傳參 27 #按照關鍵字傳參 28 #位置參數:按順序定義參數 29 #站在傳參的角度上 30 #按照位置傳參數 31 def my_max(a,b): #定義:位置參數 32 ‘‘‘返回兩個值之間的最大值‘‘‘ 33 print(a,b) 34 if a > b: 35 return a 36 else: 37 return b 38 print(my_max(10,20)) 39 print(my_max(30,20)) 40 41 #按照關鍵字傳參數,可以不按順序傳參數, 42 def my_max(a,b): #定義:關鍵字參數 43 ‘‘‘返回兩個值之間的最大值‘‘‘ 44 print(a,b) 45 if a > b: 46 return a 47 else: 48 return b 49 print(my_max(b = 10,a = 20)) 50 51 #登陸小程序 52 def login(user,pwd): 53 if user == ‘egon‘ and pwd == ‘somebody‘: 54 return True 55 else: 56 return False 57 ret = login(‘egon‘,pwd=‘somebody‘) 58 if ret: 59 print(‘登錄成功‘) 60 61 #默認參數: 62 #不要設置可變數據類型的默認參數 63 #對於變化小的參數可以設置默認參數 64 #默認參數可以不傳,不傳的時候用的就是默認值 65 #如果傳,會覆蓋默認值 66 #默認的值是在定義函數的時候就已經確定了的 67 68 #默認參數 69 def stu_info(name,sex = ‘male‘): #默認參數,有一個默認值 70 print(‘name:%s,sex:%s‘%(name,sex)) 71 stu_info(‘李淑旗‘) #默認參數可以不傳值 72 stu_info(‘海燕‘,‘female‘) #如果傳值了,覆蓋默認值 73 74 #關於默認參數流程 75 s = ‘male‘ 76 def stu_info(name,sex=s): #默認參數,有一個默認值 77 print(‘name:%s,sex:%s‘%(name,sex)) 78 s = ‘female‘ #不影響定義時sex的值 79 print(stu_info("李淑旗")) 80 #打印出來的就是male 因為開始sex=x=male,然後s是新開辟的一個空間存儲female 81 82 #不要設置可變數據類型為默認參數 83 b = [] 84 def func(a = []): 85 a.append(1) 86 print(a) 87 # func()....打印下去你會發現這個[]列表一直在追加 88 89 #位置參數、默認參數順序問題 90 def my_max(a,b=5):#位置參數在默認參數之前 91 if a>b: 92 return a 93 else: 94 return b 95 print(my_max(5,6)) #按照位置傳和按照關鍵字傳 96 97 98 #動態參數 99 #*args #按位置傳參數 100 def func(a,b,*c): #*c接收的是5,5,5,5並且輸出一個元祖包含這個4個5 *args代表把散列的元素拼成元組 101 my_sum = a+b 102 for i in c: 103 my_sum += i 104 return my_sum 105 print(func(3,2,5,5,5,5)) 106 107 108 #**kwargs #按照關鍵字傳參數 109 def fun(a,b,**kwargs): 110 print(a,b,kwargs) 111 fun(a = 10,b = 20,cccc= 30,dddd = 50) 112 113 #形式參數括號裏面的位置順序 114 def f(a,b,*args,defult=6,**kwargs): 115 #位置參數,*args,默認參數,**kwargs 116 print(a,b,args,defult) 117 #傳參數的時候:必須先按照位置傳參數,再按照關鍵字傳參數 118 f(1,2,7,8,defult=10) 119 120 121 #在傳參的時候,針對列表,元祖的話,有個*t參數,避免手動傳參 122 def fun2(*args):#*args代表把散列的元素拼成元組 123 print(args) 124 t = (1,2,3,4) 125 l = [1,2,3,4] 126 # fun2(t[0],t[1],t[2],t[3]) 127 fun2(*t) #*代表把一個元組、列表拆了 128 fun2(*l) #*代表把一個元組、列表拆了 129 130 #針對字典有個**d參數,避免手動傳參 131 def fun3(**kwargs):#*args代表把按關鍵字傳來的參數拼成字典 132 print(kwargs) 133 fun3(a = 10, b = 20) 134 d = {‘a‘: 10, ‘b‘: 20} 135 fun3(**d) #*代表把一個字典拆了
python開發編程基礎:函數定義,返回值,參數