每個語言都有它的優(yōu)勢和缺點的。以下幾點只是我個人對python優(yōu)缺點的一些淺見,望輕拍。
首先講下python的一些缺點吧。
1.代碼運行慢,跟靜態(tài)語言肯定是不能比運行速度的,即使在腳本語言中也是快墊底的了,還有全局鎖的問題導(dǎo)致虛假的多線程(指在標(biāo)準(zhǔn)的cython實現(xiàn)下),但這個也可以通過pypy實現(xiàn)來彌補。
2.代碼塊必須得通過縮進(jìn)完成,我是覺得這個不太好的,因為偶然誤按了一個空格可能導(dǎo)致代碼就運行不了了。但也沒到討厭的程度,只能說能適應(yīng)。
3.python2跟python3不兼容,例如python3中字符串是unicode,python2中是某個編碼的字節(jié)串,還有一些是類庫的調(diào)整,例如urlparse。如果要升級版本的話,舊的代碼調(diào)整過來也可能需要一定工作量。
4.可能是年代久遠(yuǎn)的原因,python中相當(dāng)一部分的的類庫都是直接以模塊.函數(shù)的方式使用的,例如python2中的os.path模塊(python3.6中已經(jīng)有了面向?qū)ο蟮腜ath類型了),對于用慣了C#和java這種完全面向?qū)ο笳Z言的朋友來說,會有些人覺得它的api設(shè)計有點low了,但是這就見仁見智了,C語言面向過程的函數(shù)編程方式在linux設(shè)計中不照好牛逼轟轟么?
其它的不足暫略不寫。
然后再說一下它的優(yōu)點吧
1.庫賊多,不是一般的多,無論是標(biāo)準(zhǔn)庫還是第三方的庫,你幾乎不必再造輪子,只要google一就好了。
2.爬蟲工具,估計好多朋友最開始知道python的時候就是從爬蟲這里來的。python有很出名的爬蟲框架,例如scrapy和pyspider。
3.作為命令行的替代工具和運維工具等。
4.作為web開發(fā)工具,例如著名的django,flask,tornado等框架。
5.作為自動化測化工具等,例如selenium
6.UI開發(fā),例如pyqt,wxpython等
當(dāng)然python最殺手級的領(lǐng)域就是數(shù)據(jù)分析和人工智能了,近幾年python的大火少不了它們的功勞。numpy,pandas,tensorflow等重量級庫實在功不可抹。
回到題主的話,我列舉以上的眾多優(yōu)點想表明的是python的瑕不掩瑜。作為一個全能語言,它很好地滿足了我們對編程語言的要求。代碼足夠簡單,有強大的社區(qū)支持,適應(yīng)于大部分領(lǐng)域,對于喜歡自己搗鼓各種小項目的朋友來說,可能沒必要為了做個簡單的web服務(wù)而學(xué)習(xí)java或者UI客戶端而專門學(xué)C#的wpf等,畢竟這些python也能做,還做得不賴,與其東學(xué)一點西學(xué)一些,還不如把一種語言用得得心應(yīng)手。