Python介紹
Python前世今生
Python的創始人為吉多·范羅蘇姆(Guido van Rossum)。1989年的圣誕節期間,吉多·范羅蘇姆為了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,作為ABC語言的一種繼承。之所以選中Python作為程序的名字,是因為他是BBC電視劇——蒙提·派森的飛行馬戲團(Monty Python's Flying Circus)的愛好者。
目前吉多仍然是Python的主要開發者,決定整個Python語言的發展方向。
從效率上來講
C語言會編譯成機器碼,所以執行快
Python是高級語言會先編譯成字節碼,然后用解釋器解釋執行,執行效率慢了不少。
但是
Python語言學習曲線更緩,而且類庫齊全,功能多樣能做不少事情,夠用就好。
Python在TIOBE排行榜第5名,整體呈上升趨勢
Python應用
圖形處理,有PIL、Tkinter等圖形庫支持,能方便進行圖形處理。
數學處理,NumPy擴展提供大量與許多標準數學庫的接口,
文本處理,python提供的re模塊能支持正則表達式,還提供SGML,xml分析模塊,許多程序員利用python進行XML程序的開發。
數據庫編程,程序員可通過遵循Python DB-API(數據庫應用程序編程接口)規范的模塊與Microsoft SQL Server,Oracle,Sybase,DB2,MySQL等數據庫通信。python自帶有一個Gadfly模塊,提供了一個完整的SQL環境。
網絡編程,提供豐富的模塊支持sockets編程,能方便快速地開發分布式應用程序。
作為Web應用的開發語言,支持最新的XML技術。
多媒體應用,Python的PyOpenGL模塊封裝了"OpenGL應用程序編程接口",能進行二維和三維圖像處理。PyGame模塊可用于編寫游戲軟件。
使用企業:Youtube,Dropbox,Quora,Google,NASA
在Google內部的很多項目,例如Google App Engine使用C++編寫性能要求極高的部分,然后用Python或java/Go調用相應的模塊。《Python技術手冊》的作者馬特利(Alex Martelli)說:"這很難講,不過,2004年,Python已在Google內部使用,Google召募許多Python高手,但在這之前就已決定使用Python。他們的目的是盡量使用Python,在不得已時改用C++;在操控硬件的場合使用C++,在快速開發時候使用Python。"
Python種類
Python除了有python2和python3的區別,還有具有眾多的版本:
Python還有眾多的綁定實現:
Python環境搭建
pycharm PRofessional 最新
下載地址:
https://www.jetbrains.com/pycharm/download/
Ubuntu最新32/64無所謂
下載地址:
http://www.ubuntu.com/download/desktop/thank-you?country=CN&version=14.04.1&architecture=amd64
python2.7.x
Windows 與 Linux版本注意
win不支持多進程的類庫
*Centos環境下升級Python,需要注意yum使用2.6,升級要調整yum配置防止錯誤
Python入門
print 'hello,world'
Python執行過程
1.讀文件
2.分析 詞法分析 語法分析
3.編譯字節碼
4.字節碼解釋機器碼執行
解釋器
在Linux下的每個py文件最好明確指定解釋器,可以避免不少錯誤
#!/usr/bin/env python中文輸入
學習Python經常遇到的一個問題是編碼錯誤導致的不能正常輸出。
SyntaxError: Non-ASCII character '/xc4' in file D:/autopy/hello_world.py on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for detailsPython解釋器讀取代碼默認使用ASCII,沒有中文編碼 2^8=256種可能
unicode 2^16=65536種可能
在每個文件的開頭明確編碼格式可以最大程度避免這個問題
# -*- coding: utf-8 -*- 對應到pycharm需要修改File-Setting-Editor-File Encodings:
IDE Encoding & Project Encoding
在新建文件自動加入聲明的方法:
help中找到find action,輸入file and code templates,找到python模板文件,添加即可。
注釋
#單行注釋 """多行注釋""" 腳本參數
捕獲參數需要用到sys模塊
模塊函數 sys.argv
輸出是一個列表,第一項內容是文件名字
變量
變量名字有要求:
變量賦值:
a=10b=3.14c="hi,world"name1 = name2輸入輸出
輸入:raw_input("Something")import getpass.getpass #系統內置輸入密碼,看不到 輸出:print 流程控制
if something: #值對比,并非內存地址對比 else:something otherif a==b:elif a==c:else:初始基本數據類型
單值
數字
整型 3714
長整型 99988887777777766666
浮點型 3.14
布爾值 0,1
復數 z = a + bj
字符串
格式化
切片 索引
長度 len(x) name[-1] == name[len(name) -1 ]
去除空格 x.strip() 去除左邊的空格 x.lstrip() 去除右邊空格 x.rstrip()
分割 x.split(',')
集合
列表
功能與字符串類似
切片 索引
追加 x.append()
刪除 del x[i]
長度 len(x) #長度就是列表個數
列表變字符串 "_",join(x)
包含 in
元組
對比列表,沒有修改功能
#字符串,列表,元組之間聯系 切片,索引,循環,長度,包含
#字符串,列表,元組不同 字符串重新開辟空間,列表修改不變,元組不允許修改
字典
又稱"鍵值對" key & value
{ "name": "echo","age": 18,"gender": "看心情",} 索引通過"鍵"來查.無序
for k,v in x.items(): #所有元素 鍵值對 print kprint vprint "-------------------------"x.values() #所有值
x.keys() #所有鍵 哈希表
循環控制
for for i in xbreak #退出循環 pass continue #繼續 while while true: #死循環
print xxx基本文本操作
用戶名密碼都是在數據庫里面保存,驗證用戶名密碼需要讀取數據庫內容
找到并打開文件
文件路徑 e:/logfile file(文件路徑,模式)openfile_obj = file(文件路徑,'w+') #這個叫文件句柄 文件操作,讀寫
file_obj.read() # 一次性讀入 file_obj.readlines() #行讀取 file_obj.xreadlines() # 一次一行,處理大文件 已經被廢棄,有替代品 for line in file_obj:#每次循環,只讀一行,避免全部讀取入內存 file_obj.write()file_obj.writeline()文件關閉file_obj.close() r,只讀打開
w,寫入,覆蓋原來
a,追加
r+,讀寫
參考鏈接:
https://zh.wikipedia.org/wiki/Python
http://lesliezhu.github.io/public/2014-10-24-cython-start.html
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
新聞熱點
疑難解答