Python語言十分鐘快速入門
【簡介】
Python(蟒蛇)是一種動(dòng)態(tài)解釋型的編程語言。Python可以在Windows、UNIX、MAC等多種操作系統(tǒng)上使用,也可以在Java、.NET開發(fā)平臺(tái)上使用。
python logo
【特點(diǎn)】
1 Python使用C語言開發(fā),但是Python不再有C語言中的指針等復(fù)雜的數(shù)據(jù)類型。
2 Python具有很強(qiáng)的面向?qū)ο筇匦?,而且簡化了面向?qū)ο蟮膶?shí)現(xiàn)。它消除了保護(hù)類型、抽象類、接口等面向?qū)ο蟮脑亍?/p>
3 Python代碼塊使用空格或制表符縮進(jìn)的方式分隔代碼。
4 Python僅有31個(gè)保留字,而且沒有分號(hào)、begin、end等標(biāo)記。
5 Python是強(qiáng)類型語言,變量創(chuàng)建后會(huì)對(duì)應(yīng)一種數(shù)據(jù)類型,出現(xiàn)在統(tǒng)一表達(dá)式中的不同類型的變量需要做類型轉(zhuǎn)換。
【搭建開發(fā)環(huán)境】
1 可以到www.python.org下載安裝包,然后通過configure、make、make install進(jìn)行安裝。
2 也可以到www.activestate.com去下載ActivePython組件包。(ActivePython是對(duì)Python核心和常用模塊的二進(jìn)制包裝,它是ActiveState公司發(fā)布的Python開發(fā)環(huán)境。ActivePython使得Python的安裝更加容易,并且可以應(yīng)用在各種操作系統(tǒng)上。ActivePython包含了一些常用的Python擴(kuò)展,以及Windows環(huán)境的編程接口)。對(duì)ActivePython來說,如果你是windows用戶,下載msi包安裝即可;如果你是Unix用戶,下載tar.gz包直接解壓即可。
3 Python的IDE,包括PythonWin、Eclipse+PyDev插件、Komodo、EditPlus
【版本】
python2與python3是目前主要的兩個(gè)版本。
如下兩種情況下,建議使用python2:
1 你無法完全控制你即將部署的環(huán)境時(shí);
2 你需要使用一些特定的第三方包或擴(kuò)展時(shí);
python3是官方推薦的且是未來全力支持的版本,目前很多功能提升僅在python3版本上進(jìn)行。
【hello world】
1 創(chuàng)建hello.py
2 編寫程序:
- if __name__ == '__main__':
- print "hello word"
3 運(yùn)行程序:
- python ./hello.py
【注釋】
1 無論是行注釋還是段注釋,均以#加一個(gè)空格來注釋。
2 如果需要在代碼中使用中文注釋,必須在python文件的最前面加上如下注釋說明:
- # -* - coding: UTF-8 -* -
3 如下注釋用于指定解釋器
- #! /usr/bin/python
【文件類型】
1 Python的文件類型分為3種,即源代碼、字節(jié)代碼和優(yōu)化代碼。這些都可以直接運(yùn)行,不需要進(jìn)行編譯或連接。
2 源代碼以.py為擴(kuò)展名,由python來負(fù)責(zé)解釋;
3 源文件經(jīng)過編譯后生成擴(kuò)展名為.pyc的文件,即編譯過的字節(jié)文件。這種文件不能使用文本編輯器修改。pyc文件是和平臺(tái)無關(guān)的,可以在大部分操作系統(tǒng)上運(yùn)行。如下語句可以用來產(chǎn)生pyc文件:
- import py_compile
- py_compile.compile(‘hello.py’)
4 經(jīng)過優(yōu)化的源文件會(huì)以.pyo為后綴,即優(yōu)化代碼。它也不能直接用文本編輯器修改,如下命令可用來生成pyo文件:
- python -O -m py_complie hello.py
【變量】
1 python中的變量不需要聲明,變量的賦值操作即使變量聲明和定義的過程。
2 python中一次新的賦值,將創(chuàng)建一個(gè)新的變量。即使變量的名稱相同,變量的標(biāo)識(shí)并不相同。用id()函數(shù)可以獲取變量標(biāo)識(shí):
- x = 1
- print id(x)
- x = 2
- print id(x)
3 如果變量沒有賦值,則python認(rèn)為該變量不存在
4 在函數(shù)之外定義的變量都可以稱為全局變量。全局變量可以被文件內(nèi)部的任何函數(shù)和外部文件訪問。
5 全局變量建議在文件的開頭定義。
6 也可以把全局變量放到一個(gè)專門的文件中,然后通過import來引用:
gl.py文件中內(nèi)容如下:
- _a = 1
- _b = 2
use_global.py中引用全局變量:
- import gl
- def fun():
- print gl._a
- print gl._b
- fun()
【常量】
python中沒有提供定義常量的保留字??梢宰约憾x一個(gè)常量類來實(shí)現(xiàn)常量的功能。
- class _const:
- class ConstError(TypeError): pass
- def __setattr__(self,name,vlaue):
- if self.__dict__.has_key(name):
- raise self.ConstError, “Can’t rebind const(%s)”%name
- self.__dict__[name]=value
- import sys
- sys.modules[__name__]=_const()
【數(shù)據(jù)類型】
1 python的數(shù)字類型分為整型、長整型、浮點(diǎn)型、布爾型、復(fù)數(shù)類型。
2 python沒有字符類型
3 python內(nèi)部沒有普通類型,任何類型都是對(duì)象。
4 如果需要查看變量的類型,可以使用type類,該類可以返回變量的類型或創(chuàng)建一個(gè)新的類型。
5 python有3種表示字符串類型的方式,即單引號(hào)、雙引號(hào)、三引號(hào)。單引號(hào)和雙引號(hào)的作用是相同的。python程序員更喜歡用單引號(hào),C/Java程序員則習(xí)慣使用雙引號(hào)表示字符串。三引號(hào)中可以輸入單引號(hào)、雙引號(hào)或換行等字符。
【運(yùn)算符和表達(dá)式】
1 python不支持自增運(yùn)算符和自減運(yùn)算符。例如i++/i–是錯(cuò)誤的,但i+=1是可以的。
2 1/2在python2.5之前會(huì)等于0.5,在python2.5之后會(huì)等于0。
3 不等于為!=或<>
4 等于用==表示
5 邏輯表達(dá)式中and表示邏輯與,or表示邏輯或,not表示邏輯非
【控制語句】
1 條件語句:
- if (表達(dá)式) :
- 語句1
- else :
- 語句2
2 條件語句:
- if (表達(dá)式) :
- 語句1
- elif (表達(dá)式) :
- 語句2
- …
- elif (表達(dá)式) :
- 語句n
- else :
- 語句m
3 條件嵌套:
- if (表達(dá)式1) :
- if (表達(dá)式2) :
- 語句1
- elif (表達(dá)式3) :
- 語句2
- …
- else:
- 語句3
- elif (表達(dá)式n) :
- …
- else :
- …
4 python本身沒有switch語句。
5 循環(huán)語句:
- while(表達(dá)式) :
- …
- else :
- …
6 循環(huán)語句:
- for 變量 in 集合 :
- …
- else :
- …
7 python不支持類似c的for(i=0;i<5;i++)這樣的循環(huán)語句,但可以借助range模擬:
- for x in range(0,5,2):
- print x
【數(shù)組相關(guān)】
1 元組(tuple):python中一種內(nèi)置的數(shù)據(jù)結(jié)構(gòu)。元組由不同的元素組成,每個(gè)元素可以存儲(chǔ)不同類型的數(shù)據(jù),如字符串、數(shù)字甚至元素。元組是寫保護(hù)的,即元組創(chuàng)建之后不能再修改。元組往往代表一行數(shù)據(jù),而元組中的元素代表不同的數(shù)據(jù)項(xiàng)??梢园言M看做不可修改的數(shù)組。創(chuàng)建元組示例如下:
- tuple_name=(“apple”,”banana”,”grape”,”orange”)
2 列表(list):列表和元組相似,也由一組元素組成,列表可以實(shí)現(xiàn)添加、刪除和查找操作,元素的值可以被修改。列表是傳統(tǒng)意義上的數(shù)組。列表創(chuàng)建示例如下:
- list=[“apple”,”banana”,”grage”,”orange”]
可以使用append方法來在尾部追加元素,使用remove來刪除元素。
3 字典(dictionary):由鍵-值對(duì)組成的集合,字典中的值通過鍵來引用。鍵和值之間用冒號(hào)隔開,鍵-值對(duì)之間用逗號(hào)隔開,并且被包含在一對(duì)花括號(hào)中。創(chuàng)建示例如下:
- dict={“a”:”apple”, “b”:”banana”, “g”:”grage”, “o”:”orange”}
4 序列:序列是具有索引和切片能力的集合。元組、列表和字符串都屬于序列。
【函數(shù)相關(guān)】
1 python程序由包(package)、模塊(module)和函數(shù)組成。包是由一系列模塊組成的集合。模塊是處理某一類問題的函數(shù)和類的集合。
2 包就是一個(gè)完成特定任務(wù)的工具箱。
3 包必須含有一個(gè)__init__.py文件,它用于標(biāo)識(shí)當(dāng)前文件夾是一個(gè)包。
4 python的程序是由一個(gè)個(gè)模塊組成的。模塊把一組相關(guān)的函數(shù)或代碼組織到一個(gè)文件中,一個(gè)文件即是一個(gè)模塊。模塊由代碼、函數(shù)和類組成。導(dǎo)入模塊使用import語句。
5 包的作用是實(shí)現(xiàn)程序的重用。
6 函數(shù)是一段可以重復(fù)多次調(diào)用的代碼,函數(shù)定義示例如下:
- def arithmetic(x,y,operator):
- result={
- “+”:x+y,
- “-“:x-y,
- “*”:x*y,
- “/”:x/y
- }
7 函數(shù)返回值可以用return來控制。
【字符串相關(guān)】
1 格式化輸出:
- format=”%s%d” % (str1,num)
- print format
2 用+進(jìn)行字符串的合并:
- str1=”hello”
- str2=”world”
- result=str1+str2
3 字符串截取可以通過索引/切片,也可以通過split函數(shù)。
4 通過切片截取字符串:
- word=”world”
- print word[0:3]
5 python使用==和!=來進(jìn)行字符串比較。如果比較的兩個(gè)變量的類型不相同,那么結(jié)果必然為不同。
【文件處理】
1 簡單處理文件:
- context=”hello,world”
- f=file(“hello.txt”,’w’)
- f.write(context);
- f.close()
2 讀取文件可以使用readline()函數(shù)、readlines()函數(shù)和read函數(shù)。
3 寫入文件可以使用write()、writelines()函數(shù)
【對(duì)象和類】
1 python用class保留字來定義一個(gè)類,類名的首字符要大寫。當(dāng)程序員需要?jiǎng)?chuàng)建的類型不能用簡單類型來表示時(shí),就需要定義類,然后利用定義的類創(chuàng)建對(duì)象。定義類示例:
- class Fruit:
- def grow(self):
- print “Fruit grow”
2 當(dāng)一個(gè)對(duì)象被創(chuàng)建后,包含了三方面的特性,即對(duì)象的句柄、屬性和方法。創(chuàng)建對(duì)象的方法:
- fruit = Fruit()
- fruit.grow()
3 python沒有保護(hù)類型的修飾符
4 類的方法也分為公有方法和私有方法。私有函數(shù)不能被該類之外的函數(shù)調(diào)用,私有的方法也不能被外部的類或函數(shù)調(diào)用。
5 python使用函數(shù)”staticmethod()“或”@ staticmethod“指令的方法把普通的函數(shù)轉(zhuǎn)換為靜態(tài)方法。靜態(tài)方法相當(dāng)于全局函數(shù)。
6 python的構(gòu)造函數(shù)名為__init__,析構(gòu)函數(shù)名為__del__
7 繼承的使用方法:
- class Apple(Fruit):
- def …
【連接mysql】
1 用MySQLdb模塊操作MySQL數(shù)據(jù)庫非常方便。示例代碼如下:
- import os, sys
- import MySQLdb
- try:
- conn MySQLdb.connect(host=’localhost’,user=’root’,passwd=’’,db=’address’
- except Exception,e:
- print e
- sys.exit()
- cursor=conn.cursor()
- sql=’insert into address(name, address) values(%s, %s)’
- value=((“zhangsan”,”haidian”),(“lisi”,”haidian”))
- try
- cursor.executemany(sql,values)
- except Exception, e:
- print e
- sql=”select * from address”
- cursor.execute(sql)
- data=cursor.fetchall()
- if data
- for x in data:
- print x[0],x[1]
- cursor.close()
- conn.close()
謝謝!