8個(gè)超好用內(nèi)置函數(shù)set(),eval(),sorted(),reversed(),map(),reduce(),filter(),enumerate()
創(chuàng)新互聯(lián)憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗(yàn),為客戶提供超值的營(yíng)銷(xiāo)型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營(yíng)銷(xiāo)型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個(gè)人等客戶提供了網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作服務(wù),以良好的商業(yè)信譽(yù),完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。
python中有許多內(nèi)置函數(shù),不像print那么廣為人知,但它們卻異常的強(qiáng)大,用好了可以大大提高代碼效率。
這次來(lái)梳理下8個(gè)好用的python內(nèi)置函數(shù)
1、set()
當(dāng)需要對(duì)一個(gè)列表進(jìn)行去重操作的時(shí)候,set()函數(shù)就派上用場(chǎng)了。
用于創(chuàng)建一個(gè)集合,集合里的元素是無(wú)序且不重復(fù)的。集合對(duì)象創(chuàng)建后,還能使用并集、交集、差集功能。
2、eval()之前有人問(wèn)如何用python寫(xiě)一個(gè)四則運(yùn)算器,輸入字符串公式,直接產(chǎn)生結(jié)果。用eval()來(lái)做就很簡(jiǎn)單:eval(str_expression)作用是將字符串轉(zhuǎn)換成表達(dá)式,并且執(zhí)行。
3、sorted()在處理數(shù)據(jù)過(guò)程中,我們經(jīng)常會(huì)用到排序操作,比如將列表、字典、元組里面的元素正/倒排序。這時(shí)候就需要用到sorted() ,它可以對(duì)任何可迭代對(duì)象進(jìn)行排序,并返回列表。對(duì)列表升序操作:
對(duì)元組倒序操作:
使用參數(shù):key,根據(jù)自定義規(guī)則,按字符串長(zhǎng)度來(lái)排序:
根據(jù)自定義規(guī)則,對(duì)元組構(gòu)成的列表進(jìn)行排序:
4、reversed()如果需要對(duì)序列的元素進(jìn)行反轉(zhuǎn)操作,reversed()函數(shù)能幫到你。reversed()接受一個(gè)序列,將序列里的元素反轉(zhuǎn),并最終返回迭代器。
5、map()做文本處理的時(shí)候,假如要對(duì)序列里的每個(gè)單詞進(jìn)行大寫(xiě)轉(zhuǎn)化操作。這個(gè)時(shí)候就可以使用map()函數(shù)。
map()會(huì)根據(jù)提供的函數(shù),對(duì)指定的序列做映射,最終返回迭代器。也就是說(shuō)map()函數(shù)會(huì)把序列里的每一個(gè)元素用指定的方法加工一遍,最終返回給你加工好的序列。舉個(gè)例子,對(duì)列表里的每個(gè)數(shù)字作平方處理:
6、reduce()前面說(shuō)到對(duì)列表里的每個(gè)數(shù)字作平方處理,用map()函數(shù)。那我想將列表里的每個(gè)元素相乘,該怎么做呢?這時(shí)候用到reduce()函數(shù)。
reduce()會(huì)對(duì)參數(shù)序列中元素進(jìn)行累積。第一、第二個(gè)元素先進(jìn)行函數(shù)操作,生成的結(jié)果再和第三個(gè)元素進(jìn)行函數(shù)操作,以此類(lèi)推,最終生成所有元素累積運(yùn)算的結(jié)果。再舉個(gè)例子,將字母連接成字符串。
你可能已經(jīng)注意到,reduce()函數(shù)在python3里已經(jīng)不再是內(nèi)置函數(shù),而是遷移到了functools模塊中。這里把reduce()函數(shù)拎出來(lái)講,是因?yàn)樗匾恕?/p>
7、filter()一些數(shù)字組成的列表,要把其中偶數(shù)去掉,該怎么做呢?
filter()函數(shù)輕松完成了任務(wù),它用于過(guò)濾序列,過(guò)濾掉不符合條件的元素,返回一個(gè)迭代器對(duì)象。filter()函數(shù)和map()、reduce()函數(shù)類(lèi)似,都是將序列里的每個(gè)元素映射到函數(shù),最終返回結(jié)果。我們?cè)僭囋嚕绾螐脑S多單詞里挑出包含字母w的單詞。
8、enumerate()這樣一個(gè)場(chǎng)景,同時(shí)打印出序列里每一個(gè)元素和它對(duì)應(yīng)的順序號(hào),我們用enumerate()函數(shù)做做看。
enumerate翻譯過(guò)來(lái)是枚舉、列舉的意思,所以說(shuō)enumerate()函數(shù)用于對(duì)序列里的元素進(jìn)行順序標(biāo)注,返回(元素、索引)組成的迭代器。再舉個(gè)例子說(shuō)明,對(duì)字符串進(jìn)行標(biāo)注,返回每個(gè)字母和其索引。
當(dāng)我知道可以做這些之后,我特別想會(huì)。因?yàn)檎撐牟殚啞⒋鸢复_認(rèn)查詢;想知道豆瓣8分以上電影,或者穿越類(lèi)的電影、處理工資數(shù)據(jù)考核表等。
可以干什么
1、上學(xué)吧答案神器 主要實(shí)現(xiàn)的是無(wú)限制獲取上學(xué)吧網(wǎng)站上的題目答案(繞過(guò) IP 限制),并實(shí)現(xiàn)了自動(dòng)識(shí)別驗(yàn)證碼,只用輸入某個(gè)題目的網(wǎng)址,即可一鍵獲取答案,速度非常快。「想要哈哈,自己或者給孩子輔導(dǎo)作業(yè)必備啊?」
2、抓取某系統(tǒng)內(nèi)全部學(xué)生姓名學(xué)號(hào)及選課信息
3、掃描研究生系統(tǒng)上的弱密碼用戶、模擬登錄圖書(shū)館系統(tǒng)并自動(dòng)續(xù)借
4、給釣魚(yú)網(wǎng)站批量提交垃圾信息 經(jīng)常會(huì)收到含有釣魚(yú)網(wǎng)站鏈接的短信的,一般都是盜取 QQ 密碼的偏多,其實(shí)可以使用 Python 來(lái)批量給對(duì)方的服務(wù)器提交垃圾數(shù)據(jù)(需要先抓包),這樣騙子看到信息之后就不知道哪些是真的哪些是假的了,說(shuō)不定可以解救一部分填了密碼的同學(xué)。
5、網(wǎng)易云音樂(lè)批量下載 可以批量下載網(wǎng)易云音樂(lè)熱歌榜的歌曲,可以自己設(shè)定數(shù)量,速度非常快。
6、批量下載讀者雜志某一期的全部文章
7、 獲取城市PM2.5濃度和排名
8、爬取某網(wǎng)商品價(jià)格信息
你都用 Python 來(lái)做什么?
那Python 作為一種功能強(qiáng)大的編程語(yǔ)言,因其簡(jiǎn)單易學(xué)而受到很多開(kāi)發(fā)者的青睞。那么,Python 的應(yīng)用領(lǐng)域有哪些呢?
Python 的應(yīng)用領(lǐng)域非常廣泛,幾乎所有大中型互聯(lián)網(wǎng)企業(yè)都在使用 Python 完成各種各樣的任務(wù),例如國(guó)外的 Google、Youtube、Dropbox,國(guó)內(nèi)的百度、新浪、搜狐、騰訊、阿里、網(wǎng)易、淘寶、知乎、豆瓣、汽車(chē)之家、美團(tuán)等等。概括起來(lái),Python 的應(yīng)用領(lǐng)域主要有如下幾個(gè)。
Web應(yīng)用開(kāi)發(fā)
Python 經(jīng)常被用于 Web 開(kāi)發(fā),盡管目前 PHP、JS 依然是 Web 開(kāi)發(fā)的主流語(yǔ)言,但 Python 上升勢(shì)頭更勁。尤其隨著 Python 的 Web 開(kāi)發(fā)框架逐漸成熟(比如 Django、flask、TurboGears、web2py 等等),程序員可以更輕松地開(kāi)發(fā)和管理復(fù)雜的 Web 程序。例如,通過(guò) mod_wsgi 模塊,Apache 可以運(yùn)行用 Python 編寫(xiě)的 Web 程序。Python 定義了 WSGI 標(biāo)準(zhǔn)應(yīng)用接口來(lái)協(xié)調(diào) HTTP 服務(wù)器與基于 Python 的 Web 程序之間的通信。舉個(gè)最直觀的例子,全球最大的搜索引擎 Google,在其網(wǎng)絡(luò)搜索系統(tǒng)中就廣泛使用 Python 語(yǔ)言。另外,我們經(jīng)常訪問(wèn)的集電影、讀書(shū)、音樂(lè)于一體的豆瓣網(wǎng)(如圖 1 所示),也是使用 Python 實(shí)現(xiàn)的。
圖1用Python實(shí)現(xiàn)的豆瓣網(wǎng)
不僅如此,全球最大的視頻網(wǎng)站 Youtube 以及 Dropbox(一款網(wǎng)絡(luò)文件同步工具)也都是用 Python 開(kāi)發(fā)的。
自動(dòng)化運(yùn)維
很多操作系統(tǒng)中,Python 是標(biāo)準(zhǔn)的系統(tǒng)組件,大多數(shù) Linux 發(fā)行版以及 NetBSD、OpenBSD 和 Mac OS X 都集成了 Python,可以在終端下直接運(yùn)行 Python。有一些 Linux 發(fā)行版的安裝器使用 Python 語(yǔ)言編寫(xiě),例如 Ubuntu 的 Ubiquity 安裝器、Red Hat Linux 和 Fedora 的 Anaconda 安裝器等等。另外,Python 標(biāo)準(zhǔn)庫(kù)中包含了多個(gè)可用來(lái)調(diào)用操作系統(tǒng)功能的庫(kù)。例如,通過(guò) pywin32 這個(gè)軟件包,我們能訪問(wèn) Windows 的 COM 服務(wù)以及其他 Windows API;使用 IronPython,我們能夠直接調(diào)用 .Net Framework。通常情況下,Python 編寫(xiě)的系統(tǒng)管理腳本,無(wú)論是可讀性,還是性能、代碼重用度以及擴(kuò)展性方面,都優(yōu)于普通的 shell 腳本。
人工智能領(lǐng)域
人工智能是項(xiàng)目非常火的一個(gè)研究方向,如果要評(píng)選當(dāng)前最熱、工資最高的 IT 職位,那么人工智能領(lǐng)域的工程師最有話語(yǔ)權(quán)。而 Python 在人工智能領(lǐng)域內(nèi)的機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)等方面,都是主流的編程語(yǔ)言。可以這么說(shuō),基于大數(shù)據(jù)分析和深度學(xué)習(xí)發(fā)展而來(lái)的人工智能,其本質(zhì)上已經(jīng)無(wú)法離開(kāi) Python 的支持了,原因至少有以下幾點(diǎn):
目前世界上優(yōu)秀的人工智能學(xué)習(xí)框架,比如 Google 的 TransorFlow(神經(jīng)網(wǎng)絡(luò)框架)、FaceBook 的 PyTorch(神經(jīng)網(wǎng)絡(luò)框架)以及開(kāi)源社區(qū)的 Karas 神經(jīng)網(wǎng)絡(luò)庫(kù)等,都是用 Python 實(shí)現(xiàn)的;微軟的 CNTK(認(rèn)知工具包)也完全支持 Python,并且該公司開(kāi)發(fā)的 VS Code,也已經(jīng)把 Python 作為第一級(jí)語(yǔ)言進(jìn)行支持。Python 擅長(zhǎng)進(jìn)行科學(xué)計(jì)算和數(shù)據(jù)分析,支持各種數(shù)學(xué)運(yùn)算,可以繪制出更高質(zhì)量的 2D 和 3D 圖像。總之,AI 時(shí)代的來(lái)臨,使得 Python 從眾多編程語(yǔ)言中脫穎而出,Python 作為 AI 時(shí)代頭牌語(yǔ)言的位置,基本無(wú)人可撼動(dòng)!最后,如果你的時(shí)間不是很緊張,并且又想快速的提高,最重要的是不怕吃苦,建議你可以價(jià)位@762459510 ,那個(gè)真的很不錯(cuò),很多人進(jìn)步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
網(wǎng)路爬蟲(chóng)
Python 語(yǔ)言很早就用來(lái)編寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)。Google 等搜索引擎公司大量地使用 Python 語(yǔ)言編寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)。從技術(shù)層面上將,Python 提供有很多服務(wù)于編寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)的工具,例如 urllib、Selenium 和 BeautifulSoup 等,還提供了一個(gè)網(wǎng)絡(luò)爬蟲(chóng)框架 Scrapy。
科學(xué)計(jì)算
自 1997 年,NASA 就大量使用 Python 進(jìn)行各種復(fù)雜的科學(xué)運(yùn)算。并且,和其它解釋型語(yǔ)言(如 shell、js、PHP)相比,Python 在數(shù)據(jù)分析、可視化方面有相當(dāng)完善和優(yōu)秀的庫(kù),例如 NumPy、SciPy、Matplotlib、pandas 等,這可以滿足 Python 程序員編寫(xiě)科學(xué)計(jì)算程序。
游戲開(kāi)發(fā)
很多游戲使用 C++ 編寫(xiě)圖形顯示等高性能模塊,而使用 Python 或 Lua 編寫(xiě)游戲的邏輯。和 Python 相比,Lua 的功能更簡(jiǎn)單,體積更小;而 Python 則支持更多的特性和數(shù)據(jù)類(lèi)型。比如說(shuō),國(guó)際上指明的游戲 Sid Meier's Civilization(文明,如圖 2 所示)就是使用 Python 實(shí)現(xiàn)的。
圖2Python開(kāi)發(fā)的游戲
除此之外,Python 可以直接調(diào)用 Open GL 實(shí)現(xiàn) 3D 繪制,這是高性能游戲引擎的技術(shù)基礎(chǔ)。事實(shí)上,有很多 Python 語(yǔ)言實(shí)現(xiàn)的游戲引擎,例如 Pygame、Pyglet 以及 Cocos 2d 等。以上也僅是介紹了 Python 應(yīng)用領(lǐng)域的“冰山一角”,例如,還可以利用 Pygame 進(jìn)行游戲編程;用 PIL 和其他的一些工具進(jìn)行圖像處理;用 PyRo 工具包進(jìn)行機(jī)器人控制編程,等等。有興趣的讀者,可自行搜索資料進(jìn)行詳細(xì)了解。
例子:
#!/usr/bin/python
# Filename: class_init.py
class Person:
def __init__(self, name):
self.name = name
def sayHi(self):
print Hello, my name is, self.name
p = Person(Swaroop)
p.sayHi()
這個(gè)例子中就是在init方法中定義了參數(shù)name,然后調(diào)用的時(shí)候直接用類(lèi)名person帶上傳參swaroop就行了,swaroop參數(shù)就會(huì)傳遞給sayhi(),整個(gè)流程就對(duì)應(yīng)c中的構(gòu)造函數(shù)。
然后說(shuō)鉤子,其實(shí)就是實(shí)現(xiàn)一種內(nèi)操作,有子進(jìn)程的意思但又不是,至于裝飾函數(shù)是不是鉤子好像沒(méi)官方說(shuō)法,我認(rèn)為可以算是。裝飾器就是把一個(gè)函數(shù)對(duì)象返回給另一個(gè)函數(shù)來(lái)實(shí)現(xiàn)既定的功能,其實(shí)就是一種內(nèi)操作。
PS:很多東西都是相關(guān)的,比如方法和它的具體實(shí)現(xiàn)功能,等你用到它的功能以后就很好理解了,單純的研究理論也沒(méi)什么意思。尤其是這種比較抽象的概念。
python的內(nèi)置函數(shù)(68個(gè))
Python考核31個(gè)內(nèi)置函數(shù),
python內(nèi)置了很多內(nèi)置函數(shù)、類(lèi)方法屬性及各種模塊。當(dāng)我們想要當(dāng)我們想要了解某種類(lèi)型有哪些屬性方法以及每種方法該怎么使用時(shí),我們可以使用dir()函數(shù)和help()函數(shù)在python idle交互式模式下獲得我們想要的信息。
? dir()函數(shù)獲得對(duì)象中可用屬性的列表
Python中的關(guān)鍵詞有哪些?
dir(__builtins__):查看python內(nèi)置函數(shù)
help(‘keywords‘):查看python關(guān)鍵詞
如微分積分方程的求解程序、訪問(wèn)互聯(lián)網(wǎng)、獲取日期和時(shí)間、機(jī)器學(xué)習(xí)算法等。這些程序往往被收入程序庫(kù)中,構(gòu)成程序庫(kù)。
只有經(jīng)過(guò)嚴(yán)格檢驗(yàn)的程序才能放在程序庫(kù)里。檢驗(yàn),就是對(duì)程序作充分的測(cè)試。通常進(jìn)行的有正確性測(cè)試、精度測(cè)試、速度測(cè)試、邊界條件和出錯(cuò)狀態(tài)的測(cè)試。經(jīng)過(guò)檢驗(yàn)的程序不但能保證計(jì)算結(jié)果的正確性,而且對(duì)錯(cuò)誤調(diào)用也能作出反應(yīng)。程序庫(kù)中的程序都是規(guī)范化的。所謂規(guī)范化有三重含義:①同一庫(kù)里所有程序的格式是統(tǒng)一的;② 對(duì)這些程序的調(diào)用方法是相同的;③ 每個(gè)程序所需參數(shù)的數(shù)目、順序和類(lèi)型都是嚴(yán)格規(guī)定好的。
Python的庫(kù)包含標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)
標(biāo)準(zhǔn)庫(kù):程序語(yǔ)言自身?yè)碛械膸?kù),可以直接使用。help('modules')
第三方庫(kù):第三方者使用該語(yǔ)言提供的程序庫(kù)。
標(biāo)準(zhǔn)庫(kù): turtle 庫(kù)(必選)、 random 庫(kù)(必選)、 time 庫(kù)(可選)。
? turtle 庫(kù):圖形繪制庫(kù)
原理如同控制一只海龜,以不同的方向和速度進(jìn)行位移而得到其運(yùn)動(dòng)軌跡。
使用模塊的幫助時(shí),需要先將模塊導(dǎo)入。
例如:在IDLE中輸入import turtle
dir(turtle)
help(turtle.**)
1.畫(huà)布
畫(huà)布就是turtle為我們展開(kāi)用于繪圖區(qū)域, 我們可以設(shè)置它的大小和初始位置。
setup()方法用于初始化畫(huà)布窗口大小和位置,參數(shù)包括畫(huà)布窗口寬、畫(huà)布窗口高、窗口在屏幕的水平起始位置和窗口在屏幕的垂直起始位置。
參數(shù):width, height: 輸入寬和高為整數(shù)時(shí),表示 像素 ;為小數(shù)時(shí),表示占據(jù)電腦屏幕的比例。(startx,starty):這一坐標(biāo)表示
矩形窗口左上角頂點(diǎn)的位置,如果為空,則窗口位于屏幕中心:
例如:setup(640,480,300,300)表示在桌面屏幕(300,300)位置開(kāi)始創(chuàng)建640×480大小的畫(huà)布窗體。
2、畫(huà)筆
? color() 用于設(shè)置或返回畫(huà)筆顏色和填充顏色。
例如:color(‘red’)將顏色設(shè)為紅色,也可用fillcolor()方法設(shè)置或返回填充顏色,或用pencolor()方法設(shè)置或返回筆觸顏色。
分享標(biāo)題:Python掛鉤函數(shù) python 鉤子函數(shù)
鏈接URL:http://chinadenli.net/article42/hiheec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、商城網(wǎng)站、Google、標(biāo)簽優(yōu)化、定制網(wǎng)站、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容