python 07(函式的使用)

2021-09-09 05:53:30 字數 3069 閱讀 1517

8:19 2019/1/14/周一

//匿名函式

res=lambda x:x+1//lambda是匿名函式的定義其中res接受的是位址。其中x表示的是輸入值。

print(res(10))

//匿名函式裡面是簡單的語句,不能加複雜的邏輯結構。

把函式當成引數傳遞給另乙個函式,如果沒有返回值,則返回none .

返回值也可以是自己。

高階函式:1。函式接收的值是函式

2,返回值裡面包含函式

//高階函式的使用。

num=[1,2,3,4,5,6]

def add_one(x):

return x+1

li=def chang_num(add_one,num):

for i in num:

res =add_one(i)

return li//這裡面必須有返回值,不然列印出來的結果就是none.

print(chang_num(add_one,num))

結果:[2, 3, 4, 5, 6, 7]

//利用匿名函式同樣可以實現對上面的操作:

num=[1,2,3,4,5,6]

def add_one(x):

return x+1

li=lambda x:x+1

def chang_num(add_one,num):

for i in num:

res =add_one(i)

return li

print(chang_num(lambda x:x+1,num))

//輸出結果:

[2, 3, 4, 5, 6, 7]

map 函式的使用

num=[1,2,3,4,5,6]

map(lambda x:x+1,num)

res=map(lambda x:x+1,num)

print(res)

結果//這裡面輸出的結果是位址,所以需要遍歷列印裡面的結果。

example:

num=[1,2,3,4,5,6]

map(lambda x:x+1,num)

res=map(lambda x:x+1,num)

print(res)

for i in res :

print(i)

結果:234

567//加入list():

num=[1,2,3,4,5,6]

map(lambda x:x+1,num)

res=map(lambda x:x+1,num)

print(list(res))

結果:[2, 3, 4, 5, 6, 7]

//startswith()用法。

li=("hao_anz","sb_yulis","sb_gaojun","cjm")

change_li=

for i in li:

if not i.startswith('sb'):

print(change_li)

結果:['hao_anz', 'cjm']//列印的是列表。

//利用map()處理字串返回的結果是true,false

li=("hao_anz","sb_yulis","sb_gaojun","cjm")

change_li=

for i in li:

if not i.startswith('sb'):

print(change_li)

print(list(map(lambda x:x.startswith('sb'),li)))

結果:['hao_anz', 'cjm']

[false, true, true, false]

//利用filter()函式也是列印出字串裡面的是正確的。

li=("hao_anz","sb_yulis","sb_gaojun","cjm")

change_li=

for i in li:

if not i.startswith('sb'):

print(change_li)

res1=list(map(lambda x:x.startswith('sb'),li))

res2=list(filter(lambda x:x.startswith('sb'),li))

print(res1)

print(res2)

結果:['hao_anz', 'cjm']

[false, true, true, false]

['sb_yulis', 'sb_gaojun']

//修改:

res3=list(filter(lambda x:not x.startswith('sb'),li))//在裡面加乙個lambda :後面的返回的值。

print(res3)

結果:['hao_anz', 'cjm']

//reduce()用法:

功能: 對乙個序列進行壓縮運算,得到乙個值。但是reduce在python2的時候是內建函式,到了python3移到了functools模組,所以使用之前需要 from functools import reduce

呼叫: reduce(function,iterable),其中function必須傳入兩個引數,iterable可以是列表或者元組

---------------------

from functools import reduce

y = [2,3,4,5,6]

reduce(lambda x,y: x + y,y)

print(reduce(lambda x,y: x -y,y))

結果:-16

from functools import reduce

print(reduce(lambda x, y: x + y, range (100), 10))//10表示的是初始值。reduce 就是把所有的值合併成乙個值。

結果:4960

//decode 是解碼方式()裡面加入的是解碼規則。

res="1230"

print(res.encode().decode("gbk"))

Python 07 函式的定義與呼叫

函式最重要的目的是方便我們重複使用相同的一段程式。將一些操作隸屬於乙個函式,以後你想實現相同的操作的時候,只用呼叫函式名就可以,而不需要重複敲所有的語句。首先,我們要定義乙個函式,以說明這個函式的功能。def square sum a,b c a 2 b 2 return c 這個函式的功能是求兩個...

Python07程式異常處理

try 塊 except 異常型別 塊舉例 def foo a try b 100 a except zerodivisionerror print 除數不為零 return 1 except print 未知錯誤 return 2執行結果 foo 0 除數不為零 foo abc 未知錯誤 try ...

python 07 資料型別

目錄2.刪除列表 字典的 坑 3.二次編碼 name alex print name.capitalize 首字母大寫 name alex wusir name.title 每個單詞首字母大寫 name alex wuser print name.swapcase 大小寫反轉 name alex p...