第1章 - Python3 介紹
Python是一種介于C和Shell之間的功能全面赚哗、易學(xué)易用屿储、可擴展的語言。數(shù)據(jù)處理方面有如下優(yōu)勢:
- 異彻宦樱快捷的開發(fā)速度,代碼量少
- 豐富的數(shù)據(jù)處理包赊堪,無論是正則竖哩,還是HTML解析、XML解析遵绰,使用方便增淹。
- 內(nèi)部類型使用成本很低,不需要許多額外操作(Java成玫、C++用一個Map都很麻煩)
- 編碼問題處理方便
- 大數(shù)據(jù),往往需要處理數(shù)據(jù)的框架(如Hadoop)哭当。Python雖然小眾,但是有處理大數(shù)據(jù)的框架码撰。一些框架也支持Python个盆。
1.1 從2.7到3.5的新特性
目前,Python有兩個版本柴梆,一個是2.x终惑,一個是3.x。兩個版本是不兼容的兩個版本主要區(qū)別如下:
- 使用future模塊:Python 3.x引入了一些與Python 2不兼容的關(guān)鍵字和特性偿渡。在Python 2中霸奕,可以通過內(nèi)置future模塊倒入這些新內(nèi)容。
- print函數(shù):Python 2中的pring語句背pring()函數(shù)取代适揉,必須用括號將需要輸出的對象括起來煤惩。
- 整數(shù)除法:由于人們常常會忽視Python 3在整數(shù)除法上的改動(寫錯不會觸發(fā)SyntaxError錯誤)
- Unicode:Python 2有基于ASCII的str()類型魄揉,可通過單獨的unicode()函數(shù)轉(zhuǎn)成unicode類型,但沒有byte類型洛退。在Python 3中有了Unicode(UTF-8)字符串和兩個字節(jié)類(byte和bytearrays)
- xrange:在Python 2.x中不狮,經(jīng)常會用xrange()創(chuàng)建一個可迭代對象在旱,通常出現(xiàn)"for 循環(huán)"或"列表/集合/字典推導(dǎo)式"中,在Python 3中驻仅,range()的實現(xiàn)方式與xrange()函數(shù)相同,所以移除了xrange()
- 觸發(fā)異常:Python 2支持新舊兩種異常觸發(fā)語法毡泻。而Python 3只支持帶括號的語法(不然會觸發(fā)SyntaxError)
- 處理異常:Python 3重的異常處理發(fā)生了一點變化粘优。在Python 3中必須使用as關(guān)鍵字,Python 2中不需要
- next函數(shù)和.next()方法:由于會經(jīng)常用到next()函數(shù)(.next方法)雹顺,在Python 2兩種都支持嬉愧,在Python 3中,只能使用next()函數(shù)王财,使用.next()方法會觸發(fā)AttributeError錯誤
- for循環(huán)變量與全局命名空間泄漏:在Python 3.x中裕便,for循環(huán)中的變量不再會泄漏到全局命名空間中
- 比較無序類型:Python 3中另一個優(yōu)秀的改動绒净,如果我們試圖比較無序類型闪金,就會觸發(fā)一個TypeError
- 使用input()解析輸入內(nèi)容:Python 3改進(jìn)了input()函數(shù)哎垦,該函數(shù)總是會將用戶的輸入存儲為str對象。在Python 2中墨闲,為了避免讀取非字符串類型郑口,會發(fā)生危險行為犬性,不得不使用raw_input()代替input()
- 返回可迭代對象,而不是列表:某些函數(shù)和方法在Python 3中返回的是可迭代對象乒裆,而不像在Python 2中返回列表。對象只遍歷一次會節(jié)省很多內(nèi)存验辞,如果通過生成器多次迭代這些對象喊衫,效率就不高了。此時如果需要列表對象壳贪,可以通過Python 3的list()函數(shù)簡單地將可迭代對象轉(zhuǎn)成列表联四。
- 字符編碼:Python2:默認(rèn)編碼格式:ASCII朝墩;Python3:默認(rèn)編碼格式:UTF-8
1.2 Python環(huán)境搭建
在官網(wǎng)下載對應(yīng)系統(tǒng)版本:https://www.python.org/downloads/
菜鳥教程:https://www.runoob.com/python/python-install.html
1.2.1 Windows
下載對應(yīng)exe安裝文件,點擊安裝
1.2.2 Linux / Mac OS
以下為在 Unix & Linux 平臺上安裝 Python 的簡單步驟
- https://www.python.org/downloads/source/ 選擇適用 于Unix/Linux 的源碼壓縮包收苏。
- 下載及解壓壓縮包:如果你需要自定義一些選項修改Modules/Setup
tar -zxvf Python3.6.tar.gz
./configure --prefix=/usr/local/bin
make
make install
- 執(zhí)行以上操作后亿卤,Python 會安裝在 /usr/local/bin 目錄中鹿霸,Python 庫安裝在 /usr/local/lib/pythonXX排吴,XX 為你使用的 Python 的版本號。
1.3 Hello World
使用Python 或者Python3j進(jìn)入命令行
在交互式環(huán)境的提示符>>>下懦鼠,直接輸入代碼钻哩,按回車街氢,就可以立刻得到代碼執(zhí)行結(jié)果∩核啵現(xiàn)在伦乔,試試輸入100+200董习,看看計算結(jié)果是不是300:
>>> 100+200
300
print()打印出指定的文字函數(shù)皿淋,打印的文字用單引號或者雙引號括起來,但不能混用單引號和雙引號:
>>> print('hello, world')
hello, world
這種用單引號或者雙引號括起來的文本在程序中叫字符串,今后我們還會經(jīng)常遇到缰儿。
exit()退出Python
當(dāng)然乖阵,也可以將上面保存為.py后綴文件预麸,通過如下命令執(zhí)行
python / python3 fileName.py
1.4 Python的交互模式和直接運行.py文件有什么區(qū)別呢吏祸?
直接輸入python進(jìn)入交互模式贡翘,相當(dāng)于啟動了Python解釋器鸣驱,但是等待你一行一行地輸入源代碼踊东,每輸入一行就執(zhí)行一行闸翅。
-
直接運行.py文件相當(dāng)于啟動了Python解釋器缎脾,然后一次性把.py文件的源代碼給執(zhí)行了,你是沒有機會以交互的方式輸入源代碼的。
用Python開發(fā)程序辙纬,完全可以一邊在文本編輯器里寫代碼蓖谢,一邊開一個交互式命令窗口,在寫代碼的過程中啥辨,把部分代碼粘到命令行去驗證溉知,事半功倍级乍!前提是得有個27'的超大顯示器玫荣!