Python解釋器內(nèi)置了許多函數(shù),這意味著我們無需定義,始終可以它們。下面按照函數(shù)的字母順序,討論一些常用的內(nèi)建函數(shù)。
成都創(chuàng)新互聯(lián)是專業(yè)的翠屏網(wǎng)站建設(shè)公司,翠屏接單;提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行翠屏網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
eval()
eval()函數(shù)解析傳給它的表達(dá)式,并在程序中運(yùn)行Python表達(dá)式(代碼)。舉個例子:
x?=?1
eval("x?+?1")??#?注意:"x?+?1"是字符串
2
eval("4??9")
True
eval("'py'?*?3")
'pypypy'
eval("10?**?2")
100
eval()函數(shù)不僅僅能運(yùn)行簡單表達(dá)式,還能調(diào)用函數(shù),使用方法等等:
eval("abs(-11)")????????#?計算-11的絕對值
11
eval('"hello".upper()')???#?把字符串'hello'全變成大寫字母
'HELLO'
import?os
eval('os.getcwd()')???????#?獲取當(dāng)前的工作目錄
'/home/thepythonguru'
但是需要注意的是eval()僅適用于表達(dá)式,嘗試傳遞語句會導(dǎo)致語法錯誤:
eval('a?=?1')????????????????????#?賦值語句
Traceback?(most?recent?call?last):
File?"",?line?1,?in
File?"",?line?1
a?=?1
^
SyntaxError:?invalid?syntax
eval('import?re')?????????????#?導(dǎo)入語句
Traceback?(most?recent?call?last):
File?"",?line?1,?in
File?"",?line?1
import?re
^
SyntaxError:?invalid?syntax
此外,使用eval()語句應(yīng)該十分小心,永遠(yuǎn)不要將不受信任的源直接傳遞給eval()。 因?yàn)閻阂庥脩艉苋菀讓δ南到y(tǒng)造成破壞。 例如:
eval(input())??#?eval()將執(zhí)行用戶輸入的代碼
用戶輸入以下代碼就能從系統(tǒng)中刪除所有文件:
os.system("RM?-RF?/")
#?上面輸入相當(dāng)于執(zhí)行:
eval('os.system("RM?-RF?/")')
filter()
"filter"的意思是“過濾”,filter()函數(shù)需要兩個參數(shù):一個函數(shù)對象和一個可迭代對象。函數(shù)對象需要返回一個布爾值,并為可迭代的每個元素調(diào)用。 filter()函數(shù)僅返回那些通過函數(shù)對象返回值為true的元素。解釋有一些抽象,看一個例子:
a?=?[1,?2,?3,?4,?5,?6]
filter(lambda?x?:?x?%?2?==?0,?a)????????#?過濾出所有偶數(shù),結(jié)果返回一個filter對象
filter?object?at?0x1036dc048
list(filter(lambda?x?:?x?%?2?==?0,?a))??#?可以使用list()函數(shù)使fileter對象變成列表,方便查看結(jié)果
[2,?4,?6]
下面是另外一個例子:
dict_a?=?[{'name':?'python',?'points':?10},?{'name':?'java',?'points':?8}]
filter(lambda?x?:?x['name']?==?'python',?dict_a)??#?過濾出列表中鍵'name'為值'python'的字典
filter?object?at?0x1036de128
tuple(filter(lambda?x?:?x['name']?==?'python',?dict_a))??#?使用tuple()函數(shù)使結(jié)果變成字典
({'name':?'python',?'points':?10},)
float()
float()的參數(shù)是一個數(shù)字或者字符串,它返回一個浮點(diǎn)數(shù)。如果參數(shù)是字符串,則字符串中應(yīng)該包含一個數(shù)字,并可以在數(shù)字前加入一個 '-' 符號,代表負(fù)數(shù)。參數(shù)也可以是表示NaN(非數(shù)字)或正無窮大的字符串。如果沒有任何參數(shù)的話,將返回0.0。
float('+1.23')?????????#?1.23
1.23
float('???-12345\n')???#?-12345
-12345.0
float('1e-003')????????#?0.001
0.001
float('+1E6')??????????#?10的6次冪
1000000.0
float('-Infinity')?????#?無窮小
-inf
float('-inf')?+?100?????#?負(fù)無窮小加100仍等于負(fù)無窮小
-inf
float('inf')???????????#?無窮大
inf
float('NaN')???????????#?NaN,代表非數(shù)字
nan
關(guān)于Python的基礎(chǔ)問題可以看下這個網(wǎng)頁的視頻教程,網(wǎng)頁鏈接,希望我的回答能幫到你。
在Python中,lambda函數(shù)是一個簡單的匿名函數(shù)。該函數(shù)沒有函數(shù)名,它可以有多個參數(shù),但函數(shù)只由一個表達(dá)式構(gòu)成。
lambda函數(shù)具體的格式如下:
lambda 參數(shù) : 表達(dá)式
其中, lambda 是關(guān)鍵字, 參數(shù) 是函數(shù)的參數(shù),可以有0至多個。冒號后面是表達(dá)式,也是該函數(shù)中的唯一的表達(dá)式,lambda函數(shù)會返回該表達(dá)式的返回值。
我們來看一個具體的例子。
在上述代碼中,number1, number2是lambda函數(shù)的參數(shù),number1**2+number**2是函數(shù)的表達(dá)式,該函數(shù)返回number1, number2兩個數(shù)的平方和。
上述代碼創(chuàng)建了一個lambda函數(shù)后將其賦值給變量sum_square, 在print函數(shù)中通過sum_square來調(diào)用這個lambda函數(shù)。
上述的lambda函數(shù)完全可用標(biāo)準(zhǔn)的函數(shù)來實(shí)現(xiàn),我們可以將上述代碼改寫成下面的代碼。
在代碼中,定義了函數(shù)sum_square,該函數(shù)包含兩個參數(shù),并執(zhí)行一條語句并將該語句的執(zhí)行結(jié)果作為函數(shù)返回值。通過上述代碼可以幫助我們更直觀地理解lambda函數(shù)。
lambda函數(shù)的可讀性較差,那么為什么要有這樣奇怪的匿名函數(shù)呢?這個要從lambda的使用場合說起。我們來看下面的代碼。
上述代碼定義了一個數(shù)值列表,調(diào)用python的內(nèi)置函數(shù)filter來生成一個新的迭代器。 filter函數(shù)的第一個參數(shù)為一個函數(shù),用于決定過濾的方法;第二個參數(shù)為一個可迭代的對象如列表、集合等。filter函數(shù)返回一個新的迭代器, 用于獲得滿足第一個函數(shù)為真的所有元素。在上述代碼中,我們給filter傳遞的第一個參數(shù)是一個匿名函數(shù):lambda number:number%3==0, 該函數(shù)在一個數(shù)整除3時為True,否則為False. filter函數(shù)會創(chuàng)建一個新的迭代器,通過調(diào)用上述匿名函數(shù)來判斷該元素是否滿足條件,得到所有3的倍數(shù)的數(shù)。
當(dāng)然,上述代碼也可以使用正常的函數(shù)方式來實(shí)現(xiàn),如下所示:
我們可以看到,所有匿名函數(shù)的功能都可以通過標(biāo)準(zhǔn)函數(shù)來實(shí)現(xiàn)。匿名函數(shù)常在調(diào)用其它函數(shù)(如filter, map等)時作為參數(shù)使用。使用匿名函數(shù)可以使代碼更為精簡。匿名函數(shù)主要用于完成簡單的任務(wù),如果匿名函數(shù)過于復(fù)雜,會導(dǎo)致可讀性較差,調(diào)試起來也比較困難,因此,強(qiáng)烈不建議使用lambda寫天書般的代碼??傊鶕?jù)實(shí)際情況決定是否使用匿名函數(shù)。
filter就是按條件篩選:
filter(bool,['spam','','ni'])
list(filter(bool,[''spam,'','ni']))
輸出的結(jié)果為['spam','ni']
#按照bool型篩選,因?yàn)橹虚g的‘’,為空,不是bool型所以過濾掉。
如果要求a到b之間所有奇數(shù)的和,可以使用Python的range函數(shù),這個函數(shù)可以生成一個指定范圍內(nèi)的整數(shù)序列。例如,要生成從1到10的整數(shù)序列,可以使用range(1, 11)。
要求奇數(shù)和,可以在生成整數(shù)序列的基礎(chǔ)上,使用Python的filter函數(shù)來過濾出序列中的奇數(shù)。filter函數(shù)可以接受一個函數(shù)作為參數(shù),并根據(jù)這個函數(shù)的返回值來過濾序列中的元素。例如,要過濾出序列[1, 2, 3, 4, 5]中的奇數(shù),可以使用以下代碼:
def is_odd(x):
return x % 2 != 0
odd_numbers = filter(is_odd, [1, 2, 3, 4, 5])
最后,要求過濾出的奇數(shù)的和,可以使用Python的sum函數(shù)。sum函數(shù)可以接受一個數(shù)字序列,并返回序列中所有數(shù)字的和。例如,要求序列[1, 2, 3, 4, 5]的和,可以使用以下代碼:
numbers = [1, 2, 3, 4, 5]
sum = sum(numbers)
綜上,要求a到b之間所有奇數(shù)的和,可以使用如下代碼:
def is_odd(x):
return x % 2 != 0
def odd_sum(a, b):
numbers = range(a, b+1)
odd_numbers = filter(is_odd, numbers)
return sum(odd_numbers)
示例:
# 求1到10之間所有奇數(shù)的和
odd_sum(1, 10) # 返回25,因?yàn)?+3+5+7+9
math模塊
在使用前導(dǎo)入math模塊 import math
常用方法
math.pow()方法
math.pow(x,y) 返回x的y次方
math.sqrt()方法
math.sqrt(x) 返回x的平方根
math,factorial()方法
math.factorial(x) 返回x的階乘
什么是階乘 5! 5 4 3 2 1=120
高級內(nèi)置函數(shù)即方法(常用)
1--map()函數(shù)
1--實(shí)例解釋
2--reduce()函數(shù)
2--實(shí)例解釋
3--filter()函數(shù) (俗稱過濾器)
3--實(shí)例解釋
4--zip()函數(shù)
4--實(shí)例解釋
5--sorted()函數(shù)和當(dāng)中的key
5--實(shí)例解釋
6--enumerate()函數(shù)
6--實(shí)例解釋
7--sum()函數(shù)
7--實(shí)例解釋
8--set()函數(shù)
8--實(shí)例解釋
9--join()方法
9--實(shí)例解釋
10--split()方法
10--實(shí)例解釋
11--replace()方法
11--實(shí)例解釋
12--format()方法
12--實(shí)例解釋
13--eval()函數(shù)
13--實(shí)例解釋
Lambda函數(shù)、Map函數(shù)、Filter函數(shù)、Zip函數(shù)、Reduce函數(shù)。
Lambda函數(shù)是Python中功能最強(qiáng)大的函數(shù)之一,它有時也被稱之為匿名函數(shù).。Map是程序員用來簡化程序的Python內(nèi)置函數(shù),此函數(shù)可以在不使用任何循環(huán)的情況下對所有指定的元素進(jìn)行迭代。Filter是Python中的另一個內(nèi)置函數(shù),當(dāng)需要區(qū)分其他類型的數(shù)據(jù)時,這個函數(shù)非常有用。Filter函數(shù)經(jīng)常用于根據(jù)特定過濾條件來提取數(shù)據(jù)。
Python(英國發(fā)音:/paθn/美國發(fā)音:/paθn/)是一種廣泛使用的解釋型、高級和通用的編程語言。Python支持多種編程范型,包括函數(shù)式、指令式、結(jié)構(gòu)化、面向?qū)ο蠛头瓷涫骄幊獭K鼡碛袆討B(tài)類型系統(tǒng)和垃圾回收功能,能夠自動管理內(nèi)存使用,并且其本身擁有一個巨大而廣泛的標(biāo)準(zhǔn)庫。
新聞標(biāo)題:python函數(shù)過濾 python均值濾波函數(shù)
本文URL:http://jinyejixie.com/article14/hpcege.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站導(dǎo)航、網(wǎng)站制作、域名注冊、面包屑導(dǎo)航、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)