1. 程式人生 > >python開發編程基礎:函數定義,返回值,參數

python開發編程基礎:函數定義,返回值,參數

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
 9
length = 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 python
2 #_*_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開發編程基礎:函數定義,返回值,參數