1、python的語言特色
簡單峦耘、易學(xué)剔蹋、免費(fèi)開源 、高層語言贡歧、可移植性滩租、解釋性赋秀、面向?qū)ο罄洹⒖汕度胧健⒇S富的庫
2猎莲、為什么不使用Perl绍弟?
Perl程序是簡單的。它可以勝任于小型的應(yīng)用程序和腳本著洼,“使工作完成”樟遣。然而,當(dāng)你
想開始寫一些大一點(diǎn)的程序的時(shí)候身笤,Perl程序就變得不實(shí)用了豹悬。
$是shell的提示符。根據(jù)你的操作系統(tǒng)的設(shè)置液荸,它可能與你那個(gè)不同瞻佛,因此我只用$符號表示提
示符
3、使用帶提示符的解釋器
在命令行的shell提示符下鍵入python娇钱,啟動解釋器∩吮現(xiàn)在輸入print 'H ello W orld',然后按Enter
鍵文搂。你應(yīng)該可以看到輸出的單詞H ello W orld适刀。
對于W indows用戶,只要你正確的設(shè)置了PATH 變量煤蹭,你應(yīng)該可以從命令行啟動解釋器笔喉∪∈樱或者
你可以選擇使用ID LE程序。ID LE是集成開發(fā)環(huán)境的縮寫然遏。點(diǎn)擊開始->程序->Python 2.3->ID LE
(Python G U I)贫途。Linux用戶也可以使用ID LE。
>>>是你鍵入Python語句的提示符待侵。
例子
$ python
Python 2.3.4 (#1, O ct 26 2004, 16:42:40)
[G CC 3.4.2 20041017 (Red H at 3.4.2-6.fc3)] on linux2
Type "help", "copyright", "credits" or "license" for m ore inform ation.
>>> print 'hello world'
hello world
>>>
如何退出Python提示符
如果你使用的是Linux/BSD shell丢早,那么按Ctrl-d退出提示符。如果是在W indows命令行中秧倾,則按
Ctrl-z再按Enter怨酝。
4、在Python中有4種類型的數(shù)——整數(shù)那先、長整數(shù)农猬、浮點(diǎn)數(shù)和復(fù)數(shù)。
● 2是一個(gè)整數(shù)的例子售淡。
● 長整數(shù)不過是大一些的整數(shù)斤葱。
● 3.23和52.3E-4是浮點(diǎn)數(shù)的例子。E標(biāo)記表示10的冪揖闸。在這里揍堕,52.3E-4表示52.3 * 10 -4 。
● (-5+4j)和(2.3-4.6j)是復(fù)數(shù)的例子汤纸。
5衩茸、字符串
有單引號、雙引號贮泞、三引號楞慈、轉(zhuǎn)義符、字符串是不可變的啃擦、
6囊蓝、變量
們需要一種既可以儲存信息 又可以對它
們進(jìn)行操作的方法。這是為什么要引入 變量 令蛉。變量就是我們想要的東西——它們的值可以變
化聚霜,即你可以使用變量存儲任何東西。變量只是你的計(jì)算機(jī)中存儲信息的一部分內(nèi)存言询。
7俯萎、標(biāo)識符的命名
變量是標(biāo)識符的例子。 標(biāo)識符 是用來標(biāo)識 某樣?xùn)|西 的名字运杭。在命名標(biāo)識符的時(shí)候夫啊,你要遵循
這些規(guī)則:
● 標(biāo)識符的第一個(gè)字符必須是字母表中的字母(大寫或小寫)或者一個(gè)下劃線(‘ _
’)。
● 標(biāo)識符名稱的其他部分可以由字母(大寫或小寫)辆憔、下劃線(‘ _ ’)或數(shù)字(0-9)組
成撇眯。
● 標(biāo)識符名稱是對大小寫敏感的报嵌。例如,m ynam e和m yN am e不是一個(gè)標(biāo)識符熊榛。注意前者中
的小寫n和后者中的大寫N 锚国。
● 有效 標(biāo)識符名稱的例子有i、__m y_nam e玄坦、nam e_23和a1b2_c3血筑。
● 無效 標(biāo)識符名稱的例子有2things、this is spaced out和m y-nam e煎楣。
8豺总、數(shù)據(jù)類型
9、對象
記住择懂,Python把在程序中用到的任何東西都稱為 對象 喻喳。這是從廣義上說的。因此我們不會
說“某某 東西 ”困曙,我們說“某個(gè) 對象 ”表伦。
10、邏輯行與物理行
這些都是為了盡可能避免使用分號慷丽,從而讓代碼更加易讀蹦哼。事實(shí)上,
我 從來沒有 在Python程序中使用過或看到過分號盈魁。
11翔怎、運(yùn)算符
運(yùn)算符與它們的用法
運(yùn)算符 名稱 說明 例子
+ 加 兩個(gè)對象相加 3 + 5得到8窃诉。'a' + 'b'得到'ab'杨耙。
- 減
得到負(fù)數(shù)或是一個(gè)數(shù)減去另一個(gè)
數(shù)
-5.2得到一個(gè)負(fù)數(shù)。50 - 24得到26飘痛。
* 乘
兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)
若干次的字符串
2 * 3得到6珊膜。'la' * 3得到'lalala'。
** 冪
返回x的y次冪
3 ** 4得到81(即3 * 3 * 3 * 3)
/ 除 x除以y
4/3得到1(整數(shù)的除法得到整數(shù)結(jié)
果)宣脉。4.0/3或4/3.0得到
1.3333333333333333
// 取整除 返回商的整數(shù)部分 4 // 3.0得到1.0
% 取模 返回除法的余數(shù) 8% 3得到2车柠。-25.5% 2.25得到1.5
<< 左移
把一個(gè)數(shù)的比特向左移一定數(shù)目
(每個(gè)數(shù)在內(nèi)存中都表示為比特
或二進(jìn)制數(shù)字,即0和1)
2 << 2得到8塑猖≈竦唬——2按比特表示為10
>> 右移 把一個(gè)數(shù)的比特向右移一定數(shù)目
11 >> 1得到5⊙蚬叮——11按比特表示為
1011塑陵,向右移動1比特后得到101,即十
進(jìn)制的5蜡励。
& 按位與 數(shù)的按位與 5 & 3得到1令花。
| 按位或 數(shù)的按位或 5 | 3得到7阻桅。
^ 按位異或 數(shù)的按位異或 5 ^ 3得到6
~ 按位翻轉(zhuǎn) x的按位翻轉(zhuǎn)是-(x+1) ~5得到-6。
< 小于
返回x是否小于y兼都。所有比較運(yùn)算
符返回1表示真嫂沉,返回0表示假。
這分別與特殊的變量True和False
等價(jià)扮碧。注意趟章,這些變量名的大
寫。
5 < 3返回0(即False)而3 < 5返回1(即
True)慎王。比較可以被任意連接:3 < 5 <
7返回True尤揣。
> 大于 返回x是否大于y
5 > 3返回True。如果兩個(gè)操作數(shù)都是數(shù)
字柬祠,它們首先被轉(zhuǎn)換為一個(gè)共同的類
型北戏。否則,它總是返回False漫蛔。
<= 小于等于 返回x是否小于等于y x = 3; y = 6; x <= y返回True嗜愈。
>= 大于等于 返回x是否大于等于y x = 4; y = 3; x >= y返回True。
== 等于 比較對象是否相等
x = 2; y = 2; x == y返回True莽龟。x = 'str'; y =
'stR'; x == y返回False蠕嫁。x = 'str'; y = 'str'; x
== y返回True。
!= 不等于 比較兩個(gè)對象是否不相等 x = 2; y = 3; x != y返回True毯盈。
not
布
爾“非”
如果x為True剃毒,返回False。如果x
為False搂赋,它返回True赘阀。
x = True; not y返回False。
and
布
爾“與”
如果x為False脑奠,x and y返回False基公,
否則它返回y的計(jì)算值。
x = False; y = True; x and y宋欺,由于x是
False轰豆,返回False。在這里齿诞,Python不會
計(jì)算y酸休,因?yàn)樗肋@個(gè)表達(dá)式的值肯
定是False(因?yàn)閤是False)。這個(gè)現(xiàn)象
稱為短路計(jì)算祷杈。
or
布
爾“或”
如果x是True斑司,它返回True,否則
它返回y的計(jì)算值吠式。
x = True; y = False; x or y返回True陡厘。短路
計(jì)算在這里也適用抽米。
運(yùn)算符優(yōu)先級
運(yùn)算符 描述
lam bda Lam bda表達(dá)式
or 布爾“或”
and 布爾“與”
not x 布爾“非”
in,not in 成員測試
is糙置,is not 同一性測試
<云茸,<=,>谤饭,
>=标捺,!=,==
比較
| 按位或
^ 按位異或
& 按位與
<<揉抵,>> 移位
+亡容,- 加法與減法
*,/冤今,%
乘法闺兢、除法與取
余
+x,-x 正負(fù)號
~x 按位翻轉(zhuǎn)
** 指數(shù)
x.attribute 屬性參考
x[index] 下標(biāo)
x[index:index] 尋址段
f(argum ents...) 函數(shù)調(diào)用
(experession,...) 綁定或元組顯示
[expression,...] 列表顯示
{key:datum ,...} 字典顯示
'expression,...' 字符串轉(zhuǎn)換
其中我們還沒有接觸過的運(yùn)算符將在后面的章節(jié)中介紹戏罢。
12屋谭、使用表達(dá)式
#!/usr/bin/python
# Filenam e: expression.py
length = 5
breadth = 2
area = length * breadth
print 'Area is', area
print 'Perim eter is', 2 * (length + breadth)
13、控制流
while語句
只要在一個(gè)條件為真的情況下龟糕,while語句允許你重復(fù)執(zhí)行一塊語句桐磁。while語句是所謂 循環(huán) 語
句的一個(gè)例子。while語句有一個(gè)可選的else從句讲岁。
for循環(huán)
or..in是另外一個(gè)循環(huán)語句我擂,它在一序列的對象上 遞歸 即逐一使用隊(duì)列中的每個(gè)項(xiàng)目。我們會
在后面的章節(jié)中更加詳細(xì)地學(xué)習(xí)序列
使用for語句
#!/usr/bin/python
# Filenam e: for.py
for i in range(1, 5):
print i
else:
print 'The for loop is over'
for循環(huán)在這個(gè)范圍內(nèi)遞歸——for i in range(1,5)等價(jià)于for i in [1, 2, 3, 4]缓艳,這就如同把序列中的每
個(gè)數(shù)(或?qū)ο螅┵x值給i校摩,一次一個(gè),然后以每個(gè)i的值執(zhí)行這個(gè)程序塊郎任。在這個(gè)例子中秧耗,我們
只是打印i的值备籽。
記住舶治,else部分是可選的。如果包含else车猬,它總是在for循環(huán)結(jié)束后執(zhí)行一次霉猛,除非遇到break語
句。
記住珠闰,for..in循環(huán)對于任何序列都適用惜浅。這里我們使用的是一個(gè)由內(nèi)建range函數(shù)生成的數(shù)的列
表,但是廣義說來我們可以使用任何種類的由任何對象組成的序列伏嗜!我們會在后面的章節(jié)中詳
細(xì)探索這個(gè)觀點(diǎn)坛悉。
break語句
break語句是用來 終止 循環(huán)語句的伐厌,即哪怕循環(huán)條件沒有稱為False或序列還沒有被完全遞歸,
也停止執(zhí)行循環(huán)語句裸影。
continue語句
continue語句被用來告訴Python跳過當(dāng)前循環(huán)塊中的剩余語句挣轨,然后 繼續(xù) 進(jìn)行下一輪循環(huán)。
14轩猩、函數(shù)
函數(shù)是重用的程序段卷扮。它們允許你給一塊語句一個(gè)名稱,然后你可以在你的程序的任何地方使
用這個(gè)名稱任意多次地運(yùn)行這個(gè)語句塊均践。這被稱為 調(diào)用 函數(shù)晤锹。我們已經(jīng)使用了許多內(nèi)建的函
數(shù),比如len和range
函數(shù)通過def關(guān)鍵字定義彤委。def關(guān)鍵字后跟一個(gè)函數(shù)的 標(biāo)識符 名稱鞭铆,然后跟一對圓括號。圓括號
之中可以包括一些變量名焦影,該行以冒號結(jié)尾衔彻。接下來是一塊語句,它們是函數(shù)體偷办。下面這個(gè)例
子將說明這事實(shí)上是十分簡單的:
函數(shù)的行參
函數(shù)取得的參數(shù)是你提供給函數(shù)的值艰额,這樣函數(shù)就可以利用這些值 做 一些事情。這些參數(shù)就
像變量一樣椒涯,只不過它們的值是在我們調(diào)用函數(shù)的時(shí)候定義的柄沮,而非在函數(shù)本身內(nèi)賦值。
參數(shù)在函數(shù)定義的圓括號對內(nèi)指定废岂,用逗號分割祖搓。當(dāng)我們調(diào)用函數(shù)的時(shí)候,我們以同樣的方式
提供值湖苞。注意我們使用過的術(shù)語——函數(shù)中的參數(shù)名稱為 形參 而你提供給函數(shù)調(diào)用的值稱為
實(shí)參 拯欧。
局部變量
當(dāng)你在函數(shù)定義內(nèi)聲明變量的時(shí)候,它們與函數(shù)外具有相同名稱的其他變量沒有任何關(guān)系财骨,即
變量名稱對于函數(shù)來說是 局部 的镐作。這稱為變量的 作用域 。所有變量的作用域是它們被定義的
塊隆箩,從它們的名稱被定義的那點(diǎn)開始该贾。
默認(rèn)參數(shù)值
對于一些函數(shù),你可能希望它的一些參數(shù)是 可選 的捌臊,如果用戶不想要為這些參數(shù)提供值的
話杨蛋,這些參數(shù)就使用默認(rèn)值。這個(gè)功能借助于默認(rèn)參數(shù)值完成。你可以在函數(shù)定義的形參名后
加上賦值運(yùn)算符(=)和默認(rèn)值逞力,從而給形參指定默認(rèn)參數(shù)值曙寡。