簡說python
發(fā)展歷史
Python是著名的“龜叔”Guido van Rossum在1989年圣誕節(jié)期間,為了打發(fā)無聊的圣誕節(jié)而編寫的一個編程語言。
python從ABC語言發(fā)展起來,受到Modula-3的影響,同時結(jié)合了Unix shell和C的習(xí)慣
如今python已成為最受歡迎的程序設(shè)計語言之一,根據(jù)TIOBE提供的編程語言指數(shù)走勢圖可以發(fā)現(xiàn)python近些年的占有率一直保持著增長勢頭。
還是那句口號,
人生苦短,我學(xué)python
語言特性
Python是完全面向?qū)ο蟮恼Z言
Python的設(shè)計哲學(xué)是“優(yōu)雅”、“明確”、“簡單”。
盡量寫容易看明白的代碼,盡量寫少的代碼,具有限制性很強的語法,使得程序更加清晰和美觀。
主要應(yīng)用領(lǐng)域
- Web和Internet開發(fā)
- 桌面界面開發(fā)
- 科學(xué)計算和統(tǒng)計
- 人工智能
- 軟件開發(fā)
- 后端開發(fā)
2.X與3.X的主要區(qū)別
大概來說,3是2的升級版本,就是新手上手程度而言,個人認為3明顯比2更為好上手,且其中2中很多長期無人維護的庫則在3中已經(jīng)消失。官網(wǎng)也宣布Python 2.7將于2020年1月1日終止支持。兩者的具體差別:
print函數(shù)
Python3中print為一個函數(shù),必須用括號括起來;Python2中print為class
print 'python' # Python2.X
print("python") # Python3.X
整除
Python3中/表示真除,%表示取余,//結(jié)果取整;Python2中帶上小數(shù)點/表示真除,%表示取余,//結(jié)果取整
# Python2
print '3 / 2 =', 3 / 2 # 結(jié)果為1
print '3 // 2 =', 3 // 2 # 結(jié)果為1
print '3 / 2.0 =', 3 / 2.0 # 結(jié)果為1.5
print '3 // 2.0 =', 3 // 2.0 結(jié)果為1
# Python3
print('3 / 2 =', 3 / 2) # 結(jié)果為1.5, 兩者的差異處
print('3 // 2 =', 3 // 2) # 結(jié)果為1
print('3 / 2.0 =', 3 / 2.0) # 結(jié)果為1.5
print('3 // 2.0 =', 3 // 2.0) # 結(jié)果為1
xrange模塊
在 Python 3 中,range() 是像 xrange() 那樣實現(xiàn)以至于一個專門的 xrange() 函數(shù)都不再存在(在 Python 3 中xrange() 會拋出命名異常)。
unicode
Python 2 有 ASCII str() 類型,unicode() 是單獨的,不是 byte 類型。
現(xiàn)在, 在 Python 3,我們最終有了 Unicode (utf-8) 字符串,以及一個字節(jié)類:byte 和 bytearrays。
# Python2
str = "我愛北京天安門"
print 'str'
# 輸出-> ‘\xe6\x88\x91\xe7\x88\xb1\xe5\x8c\x97\xe4\xba\xac\xe5\xa4\xa9\xe5\xae\x89\xe9\x97\xa8’
# Python3
中國 = 'china'
print(中國)
# 輸出 -> 'china'
不等運算符
- Python2.x中不等于有兩種寫法!=和<>
- Python3.x中去掉了<>,只有!=一種寫法
數(shù)據(jù)類型
- Python3.x去除了long類型,現(xiàn)在只有一種整形——int,但它的行為就像2.x中l(wèi)ong
- 新增了bytes類型,對應(yīng)于2.x的八位串
- dict的.keys()、.items和.values()方法返回迭代器,而之前的iterkeys()等函數(shù)都被廢棄。同時去掉的還有dict.has_key(),用in來代替它
異常
在 Python 3 中處理異常也輕微的改變了,在 Python 3 中我們現(xiàn)在使用 as 作為關(guān)鍵詞。捕獲異常的語法由 except exc, var 改為 except exc as var。使用語法except (exc1, exc2) as var可以同時捕獲多種類別的異常。 Python 2.6已經(jīng)支持這兩種語法。
- 在2.x時代,所有類型的對象都是可以被直接拋出的,在3.x時代,只有繼承自BaseException的對象才可以被拋出。
- 2.x raise語句使用逗號將拋出對象類型和參數(shù)分開,3.x取消了這種奇葩的寫法,直接調(diào)用構(gòu)造函數(shù)拋出對象即可。
- 在2.x時代,異常在代碼中除了表示程序錯誤,還經(jīng)常做一些普通控制結(jié)構(gòu)應(yīng)該做的事情,在3.x中可以看出,設(shè)計者讓異常變的更加專一,只有在錯誤發(fā)生的情況才能去用異常捕獲語句來處理。
擴展閱讀
其實就全球下載量而言,python2的使用量遠遠超過python3,在國內(nèi)多家互聯(lián)網(wǎng)頂尖公司中python2的使用程度也是遠遠高于python3。
python2的終止支持不代表我們就不能去學(xué)習(xí)python2,其實python2種有很多很好的庫(但因為長期無人維護在3中無法使用),此外兩者間差異其實不算很大,只要注意其中的差別就可以"兩開花"。`
國內(nèi)招聘網(wǎng)站對python相關(guān)職位的需求待遇
分析了前程無憂網(wǎng)約100頁關(guān)于python崗位的數(shù)據(jù), 得到了如下的結(jié)果
python崗位的薪資一般都在0.8w+
薪資 | 提供該工資的公司數(shù)量 |
---|---|
1-1.5萬/月 | 634 |
1.5-2萬/月 | 340 |
0.8-1萬/月 | 268 |
6-8千/月 | 259 |
1-2萬/月 | 255 |
0.8-1.5萬/月 | 208 |
1.5-2.5萬/月 | 197 |
0.8-1.2萬/月 | 147 |
0.6-1萬/月 | 110 |
2-2.5萬/月 | 104 |
招聘python崗位的公司集中在北上廣深等大城市
主要招聘崗位詞云圖
可以發(fā)現(xiàn)其中較受歡迎的崗位為軟件、前后端開發(fā)、大數(shù)據(jù)、運維、算法開發(fā)等方向
基于以上的分析,可以說python就業(yè)前景是非常可觀的,同時伴隨著如今人工智能的發(fā)展,相信在未來python的應(yīng)用前景也會越來越廣泛。
文章部分內(nèi)容參考自:
- https://blog.csdn.net/qq_39521554/article/details/80855086
- https://blog.csdn.net/qq_38526635/article/details/81710721
- https://www.runoob.com/python/python-2x-3x.html
- https://blog.csdn.net/God_favored_one/article/details/78926563
- https://blog.csdn.net/u010070526/article/details/81782082
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
