堅決不用python這種垃圾(java難學嗎 大概要學多久)
夕逆IT
- 數(shù)據(jù)庫
- 2023-08-13
- 325

大家好,堅決不用python這種垃圾相信很多的網(wǎng)友都不是很明白,包括java難學嗎 大概要學多久也是一樣,不過沒有關(guān)系,接下來就來為大家分享關(guān)于堅決不用python這種...
大家好,堅決不用python這種垃圾相信很多的網(wǎng)友都不是很明白,包括java難學嗎 大概要學多久也是一樣,不過沒有關(guān)系,接下來就來為大家分享關(guān)于堅決不用python這種垃圾和java難學嗎 大概要學多久的一些知識點,大家可以關(guān)注收藏,免得下次來找不到哦,下面我們開始吧!
可以用Python編程語言做哪些神奇好玩的事情
Python作為一種應(yīng)用極為廣泛的語言,幾乎在任何領(lǐng)域都能派上用場。想做Web有Flask/Django/Tornado;想做分布式有Celery;想做手機App有Kivy;想做數(shù)據(jù)分析有Pandas;想做可視化有Matplotlib/Seaborn/Plotly/Bokeh;想做機器學習有Tensorflow/PyTorch/MxNet……
夸張一點說,幾乎沒有什么做不了的東西(筆芯)。小慕今天分享兩個可以用Python做的非常好玩的事情,大家都可以試試看~一、面部識別得益于大量前人的工作,如今利用Python做一些簡單的計算機視覺工作已經(jīng)變得非常非常簡單了。像人臉識別、面部特征提取之類的工作,就可以直接拿來用,極少需要自己實現(xiàn)繁瑣的算法。
DLib就是一個這樣的C++庫,而同時它也提供了Python接口。
想必大家都有過在辦公室遭遇boss探視的經(jīng)歷,而此時此刻你卻在毫無自知地逛著淘寶/知乎/豆瓣,場面一度十分尷尬……
那我們就來嘗試一下,用Python通過攝像頭探測人臉。如果有人進入了攝像頭范圍,則讓Python提出一個通知,告訴你——趕緊把不相關(guān)的東西關(guān)掉!
整個代碼很短,無非幾十行,為了能夠使用,我們還需要安裝一些包和庫。這里需要用到的包括OpenCV和DLib。由于dlib需要boost-python,因此還需要安裝boost和boost-python。(注意:boost-python默認情況下只編譯python2依賴的庫,如果使用python3,需要加編譯開關(guān);而dlib里是沒有探測python版本的,所以可能還需要做一些小hack或者是直接改boost-python庫里的文件名)
至于代碼,可以簡單地放出來:
importcv2importdlibfromsubprocessimportcallfromtimeimporttimeFREQ=5FACE_DETECTOR=dlib.get_frontal_face_detector()#macOS下可以使用AppleScript發(fā)送通知defnotify(text,title):cmd=r'displaynotification"%s"withtitle"%s"'%(text,title)call(["osascript","-e",cmd])if__name__=='__main__':#初始化攝像頭cap=cv2.VideoCapture(0)#創(chuàng)建繪圖窗口#cv2.namedWindow('face')notify_time=0whileTrue:#獲取一幀ret,frame=cap.read()#不需要太精細的圖片frame=cv2.resize(frame,(320,240))#探測人臉,可能有多個faces=FACE_DETECTOR(frame,1)forfaceinfaces:#提取人臉部分畫個方框#fimg=frame[face.top():face.bottom(),face.left():face.right()]#cv2.rectangle(frame,(face.left(),face.top()),(face.right(),face.bottom()),(255,0,0),3)#不超過FREQ秒一次的發(fā)提醒iftime()-notify_time>FREQ:notify(u'檢測到人臉',u'注意')notify_time=time()#畫到窗口里#cv2.imshow('face',frame)#按Q退出ifcv2.waitKey(500)&0xff==ord('q'):break#清理窗口釋放攝像頭#cv2.destroyAllWindows()cap.release()代碼的原理很簡單:通過opencv捕獲攝像頭獲取的圖像,然后交由dlib的facedetector進行檢測。如果檢測到臉部,則通過AppleScript發(fā)出系統(tǒng)提醒(notify函數(shù)即通過process執(zhí)行AppleScript發(fā)出提醒,如果你使用的是Windows,也可以替換成別的內(nèi)容,例如Win下使用VBScript發(fā)出彈窗提醒)。
當然,既然檢測到人臉,那就不僅僅只是能做簡單提醒了。還可以做的事情包括多張照片的臉部變形合成——比如,找出你和你女朋友的照片來做個夫妻相合成什么的……
或者,提取所有的標志性點,給人臉合成出意外的表情或者哈哈鏡效果。
甚至可以借助其它的深度學習網(wǎng)絡(luò)進行人臉識別。這算是超級弱化版的臉部識別,比不上FaceID但也挺好玩,不過計算量就不容樂觀了。
順便說一句,什么人臉識別關(guān)掉不該看的東西,對小慕來說不存在的,人家上班刷知乎可是經(jīng)過老板點頭的!(驕傲臉叉腰)
二、數(shù)據(jù)分析來分析下Marvel今年的最后一部戲:「雷神3:諸神的黃昏」。前一段時間滿天飛的預(yù)告片,神秘博士的客串,綠巨人的出演,看得人十分興奮!來張大圖:
大家對于這部電影的評價是怎么樣的呢?小慕爬取了2w條豆瓣影評,做一個簡單分析。
先來看看豆瓣的短評:
這里只抓取了前2w條評論,說一個小技巧,喜歡寫爬蟲的小伙伴們注意了:爬取的網(wǎng)頁一定要緩存到本地!這可以減少解析網(wǎng)頁時出錯,避免需要重新再爬一遍的「尷尬」!另外這能給服務(wù)器減少負載,人家網(wǎng)站管理員看你的請求還算守規(guī)矩,也就不會封你賬號/ip啦!
代碼大概是這樣的:
下面是緩存下來的網(wǎng)頁文件:
既然有2w多條數(shù)據(jù),怎么能直接寫sql,那會累死的……于是要來封裝一下操作數(shù)據(jù)庫的邏輯:
來看看效果,除去部分出錯的,還剩下19672條:
具體的數(shù)據(jù)是長這樣的:
另外,贊同數(shù)量排名第一卷耳君的影評實在是太有意思了:
第一部:《爸爸,再愛我一次》
第二部:《哥哥,再愛我一次》
第三部:《姐姐,再愛我一次》
ps:托爾終于從錘神變成了雷神
錘子之神這個梗小慕表示能玩一年(手動微笑臉)。
光有數(shù)據(jù)還不足以說明什么,深入分析一波:細心的小伙伴一定發(fā)現(xiàn)了,雷神明明是11月3號才上映,為啥10月份就有影評了?小慕猜測,這肯定是漫威鐵桿粉跑國外看了,一查發(fā)現(xiàn),果然人家洛杉磯10月10號就上映了:
既然關(guān)心到日期,可以來統(tǒng)計一下周一到周日哪天去看電影的人比較多:
整體數(shù)據(jù)顯示:果然還是周末去看電影的人更多……周一數(shù)據(jù)高于二、三、四的原因,不知道是不是沒有周末的朋友調(diào)休去看的?
PS:數(shù)據(jù)庫里的日期是2017-10-25格式的:怎么快速讓他顯示成周X呢?這里只要寫個小函數(shù)就行:
從數(shù)據(jù)庫里讀數(shù)據(jù)和統(tǒng)計的方式在這:(后面的統(tǒng)計方式也都類似,就不每次都把代碼放出來啦)
說了這么多還是沒提到電影的受歡迎程度,直接放圖:
總體上看還是推薦的人比較多耶,這應(yīng)該挺符合大家的預(yù)期,畢竟是漫威出品,光忠實粉絲就不計其數(shù)。更何況這個片子里出現(xiàn)了很多超級火爆的場面戲,還有各種超級英雄助陣,這樣的統(tǒng)計結(jié)果也就不足為奇了。
最后將排名前100的評論內(nèi)容做了一下分詞,做成詞云:
至于補充提問中提到的這為什么適合用Python做,其實說到底就是用Python來抓取和處理各種數(shù)據(jù)都非?!疙樖帧?。
據(jù)小慕所知,目前的數(shù)據(jù)工作中,數(shù)據(jù)科學家使用最多的工具語言就是Python,排在第二的工具語言是R語言。但這里有一個有趣的現(xiàn)象,那就是同時使用Python或者R語言的人,推薦別人使用Python的卻遠高于R語言。Why?
答案是:1.Python簡單易學,極其容易上手,語法簡單,處理速度會比R語言要快,而且無需把數(shù)據(jù)庫切割。
2.市場前景好,是目前的趨勢,就業(yè)也會更容易。
3.標準庫非常龐大,特別的“功能齊全”,可以處理各種工作,其中就包含抓取和處理數(shù)據(jù)。
所以,有一種說法是:python語言在工程方便比較實用,R語言則更受學術(shù)界歡迎。具體是否贊同這種說法,還要看大家自己的理解咯~其實除了小慕舉例說的這兩種有趣的事情,Python能做的還有很多,在此不一一列舉,如果感覺get到了新姿勢,記得回來點贊啦~
程序員學習交流請?zhí)砑幽秸n網(wǎng)官方客服微信:mukewang666回復暗號“前端面試”可進前端交流群回復暗號“Java”可進Java交流群回復暗號“專欄”可進程序員交流群Python在大部分領(lǐng)域都能勝任,為什么很多企業(yè)轉(zhuǎn)向了Golang
python是一個很靈活的語言,但是里面一切皆變量,帶來了很大的不確定性,如果不是高手,很容易造成生產(chǎn)級的事故。而go,首先作為編譯型需要,運行速度遠超python,同時容器的爆火也推進了go的發(fā)展,使越來越多的公司傾向了go,而且在很多系統(tǒng)的銜接處,通過go可以提高性能,也使很多公司轉(zhuǎn)向了go。但總的來說,語言要看場景,不能一概而論。
Python和c語言有什么區(qū)別
區(qū)別:
1、語言類型不同:c++屬于靜態(tài);Python屬于動態(tài)。
2、運行效率不同:c++的運行效率要比Python快。
3、學習難度不同:c++更加復雜;Python更容易上手。
4、編程執(zhí)行方式不同:c++需要經(jīng)過編譯才能運行;Python不需要經(jīng)過編譯。
5、函數(shù)庫的使用方法不同:c++引用頭文件需要告知預(yù)處理器這個文件的內(nèi)容;Python可以使用函數(shù)直接引用。
C語言和Python的區(qū)別
1、語言類型
Python是一種基于解釋器的,面向?qū)ο蟮慕忉屝驼Z言。解釋器會逐行讀取代碼;首先將Python編譯為字節(jié)碼,然后由大型C程序解釋。
C是一種面向過程的編譯型語言,完整的源代碼將直接編譯為機器代碼,由CPU直接執(zhí)行。
2、內(nèi)存管理
Python使用自動垃圾收集器進行內(nèi)存管理。
在C語言中,程序員必須自己進行內(nèi)存管理。
3、語法結(jié)構(gòu)
Python中通過縮進來表示語句體,在Python中每一條語句結(jié)尾后沒有分號。
C語言通過{}來表示語句體,在C語言中每一條語句結(jié)尾后都需要由英文分號結(jié)尾。分號是C語言中唯一的語句結(jié)束標志。
4、速度
Python編程語言很慢;而,C語言很快。
5、應(yīng)用
Python是一種通用編程語言,一個多范式。它主要支持面向?qū)ο缶幊蹋绦蚓幊?,函?shù)編程。
C是結(jié)構(gòu)化編程語言。允許使用函數(shù),選擇(if/else等),迭代(循環(huán))。它最主要的用途就是系統(tǒng)底層的應(yīng)用,例:硬件相關(guān)的應(yīng)用程序。
為什么感覺鋪天蓋地都是Python的廣告
很高興收到你的邀請
Python的火爆程度,本人覺得主要跟下面幾點有關(guān)系:
一是Python確實是順應(yīng)了信息技術(shù)發(fā)展的潮流,在當前5G、人工智能、大數(shù)據(jù)等領(lǐng)域,都能輕易應(yīng)對。
二是它是一個開源的開發(fā)軟件,在當前技術(shù)被政治化的脅迫下,越來越多的人認識到有版權(quán)的軟件的不可靠性,更依賴于掌握一門開源的開發(fā)軟件。
三是多人想學習Python,所以就有很多培訓Python的專業(yè)公司或個人,所以,網(wǎng)上大把的Python學習廣告,一是攬客,二是反映了培訓競爭的激烈,三是說明Python是今后最主要的開發(fā)語言。
無論如何,能掌握多一門開發(fā)語言,對于從事信息技術(shù)的人來說,都是一個很不錯的選擇。
c語言、c++ 、c# 、java python,有什么區(qū)別
cc++c#javapython只是不同的計算機編程語言,就像中文英語日語德語意大利語一樣。但他們有顯著的不同。
c語言是面向過程和函數(shù)的編程語言c語言是一門古老的語言,主要是面向過程編程,也實現(xiàn)了函數(shù)式編程。與另外幾個語言相比,顯著的優(yōu)點就是速度快。
c++是c的超集c++完全兼容c,是面向過程、面向?qū)ο?、函?shù)式編程以及模板語言等。速度相對c慢點。
c#和java是面向?qū)ο蟮恼Z言與c和c++相比,c#和java是完全面向?qū)ο蟮恼Z言。而且具有內(nèi)存管理功能。
python是腳本語言python是腳本語言,執(zhí)行期間動態(tài)編譯。其他語言都是編譯型語言,語言先編譯再執(zhí)行。因此,python具有較好的交互性。
文章到此結(jié)束,如果本次分享的堅決不用python這種垃圾和java難學嗎 大概要學多久的問題解決了您的問題,那么我們由衷的感到高興!
本文鏈接:http://www.resource-tj.com/su/473.html