python函數
⑴ python中函數的作用
Python 函數定義以及參數傳遞
1.函數定義
#形如def func(args...):
doSomething123
以關鍵字def 開頭,後面是函數名和參數下面是函數處理過程。
舉例:
def add( a, b ):
return a+b12
參數可以設定默認值,如:
def add( a, b=10 ): #注意:默認值參數只會運算一次
return a+b12
默認值參數只會運算一次是什麼意思?
def func( a, b=[] ): #b的默認值指向一個空的列表,每次不帶默認值都會指向這塊內存
b.append(a) return b
print(func(1))#向默認的空列表裡加入元素1 ,默認列表裡已經是[1]print(func(2))#向默認的列表裡加入元素2,默認列表裡已經是[1,2]print(func(3,[]))#向b指向的空列表裡加入元素1 ,默認列表裡還是[1,2]print(func(4))#向默認的列表裡加入元素4,默認列表裡已經是[1,2,4]'''
結果:
[1]
[1, 2]
[3]
[1, 2, 4]
'''12345678910111213141516
這下明白為什麼默認參數只計算一次了吧,函數參數不傳遞時默認值總是指向固定的內存空間,就是第一次計算的空間。
2.參數傳遞
def func(a, b):
print('a=%d, b=%d' % (a,b) )12
在使用函數時可以如下方式,結果都是相同的
func(10,20) #不使用參數名,需要按參數順序傳遞func(a=10,b=20) #使用參數名可以不按順序傳遞func(b=20,a=10)#結果:a=10, b=20a=10, b=20a=10, b=201234567
如果函數定義形式如下方式:
def func(*args): #這種定義會把傳遞的參數包成元組
print(args,type(args))
func(10,20)#結果:#(10, 20) <class 'tuple'>1234567
舉一個和上述過程相反的例子:
def func(a,b):
print('a=%d, b=%d' % (a,b) )
a = (10, 20)
func(*a) #在調用函數使用`*`則會把元組解包成單個變數按順序傳入函數#結果:a=10, b=20123456
總結:*號在定義函數參數時,傳入函數的參數會轉換成元組,如果 *號在調用時則會把元組解包成單個元素。
另一種定義:
def func(**kw):#使用**定義參數會把傳入參數包裝成字典dict
print(kw, type(kw) )
func(a=10,b=20)#這種函數在使用時必須指定參數值,使用key=value這種形式#結果:{'b': 20, 'a': 10} <class 'dict'>12345
相反的例子:
def func(a,b):
print('a=%d, b=%d' % (a,b) )
d = {'a':10, 'b':20 }
func(**d) #在調用時使用**會把字典解包成變數傳入函數。12345
def func(*args, **kw):#這種形式的定義代表可以接受任意類型的參數
print(args,kw )12
總結:**號在定義函數參數時,傳入函數的參數會轉換成字典,如果 **號在調用時則會把字典解包成單個元素。
lambda表達式
lambda表達式就是一種簡單的函數
形如 f = lambda 參數1,參數2: 返回的計算值
例如:
add = lambda x,y: x+y
print(add(1,2))'''
結果:3
'''12345
⑵ python with函數怎麼用
with在python中並不是函數,是一個關鍵詞語句,比如if就是關鍵詞語句。
with大多用來打開一個文檔。
比如:
with open('test.txt') as f:
f.read()
這樣就可以讀取名為test的文檔里的內容,並且使用with語句不需要我們手動再調用文件的close()方法來關閉文件,如果test.txt文檔對象不再被使用,with會自動關閉文檔。比較智能一點。
⑶ python怎麼定義函數
給你兩個函數:
##插入排序
definsertion_sort(sort_list):
iter_len=len(sort_list)
ifiter_len<2:
returnsort_list
foriinrange(1,iter_len):
key=sort_list[i]
j=i-1
whilej>=0andsort_list[j]>key:
sort_list[j+1]=sort_list[j]
j-=1
sort_list[j+1]=key
returnsort_list
##計算兩點之間的距離
defGetDistance(fPoint1,fPoint2):
x1=fPoint1.X
y1=fPoint1.Y
x2=fPoint2.X
y2=fPoint2.Y
returnpow((x1-x2),2)+pow((y1-y2),2)
⑷ pythondef函數
這只是個定義函數的語句,需要調用
調用可以直接fib(數字)
規范的Python是定義一個main()函數來調用測試,具體如下
def main():
fib(數字)
main()
⑸ python 定義函數
params=(5,)*2
#params=(5,5)
power(*params)
#實際上就是pow(5,5)=3125
⑹ python函數
參數match是正則表達式匹配後的結果,match.group(1)就是返回結果1。
importre
m=re.search('(^.+?) (.+?$)','print"111" print"222"')
printm.group(1)#print"111"
eval()一般是用來執行字元串代碼,也就是命令注入。
其中的參數code:就是要執行的代碼,比如print "111"
其中的參數scope:是code執行范圍的字典.
由於匹配的字元串代碼經常有格式對齊等問題,所以加一個try except來捕捉。
exec跟eval類似,可以執行代碼,但是只是一個語法,沒有返回值。
exec code in scope就是執行code作用范圍為scope字典
⑺ Python函數
你可以把自己遇到的問題寫出來,知道的網友就會幫你解答了,另外你還需要多學習一些Python的知識,這樣才不至於解決不了問題。這里給你學習Python編程語言的一些小建議:
1、多買幾本Python的書籍,不要看電子書。
2、對Python基礎數據類型有一個了解。
3、學會各種類型的操作方法。
4、了解函數和類的概念。
5、動手實踐,找小項目練習。
6、零基礎的同學在扣丁學堂看一些Python視頻教程學習一下。
學習Python的關鍵是看你自己的學習能力和毅力,只要堅持就會有收貨的。
⑻ python 的函數怎麼定義列表
定義列表有兩個辦法。
1.使用特徵符[],比如[1,2,3],這就定義了一個列表
2.使用工廠函數list,比如list(1,2,3)也定義了一個列表
你說的函數是自定義函數還是使用內置函數?
使用內置函數那就是使用工廠函數(有點小特殊的內置函數)list()就行。
如果自定義函數里定義列表就上面兩個方法隨意用了
⑼ Python如何定義一個函數
沒注意 把x y改成 a b 應該滿足題目了
def divideExactly(x, y):
list1 = []
for i in range(x, y):
if i % 7 == 0:
if i % 5 != 0:
list1.append(i)
l = ','.join(str(i) for i in list1)
print(l)
divideExactly(10, 100)