??Python的定位可以概括為三個詞:"優(yōu)雅"、"明確"堤舒、"簡單"椎椰,所以Python程序看上去總是簡單易懂,入門容易。Python既支持面向過程的函數(shù)編程也支持面向?qū)ο蟮某橄缶幊淌┝鳌T谟嬎銠C(jī)內(nèi)部响疚,Python解釋器把源代碼轉(zhuǎn)換成字節(jié)碼的中間形式,然后再把它翻譯成計算機(jī)使用的機(jī)器語言并運(yùn)行瞪醋。同時可以把Python嵌入C/C++程序忿晕,從而向程序用戶提供腳本功能。Python提供了豐富的標(biāo)準(zhǔn)庫趟章。Python的確是一種十分精彩又強(qiáng)大的語言杏糙。它合理地結(jié)合了高性能與使得編寫程序簡單有趣的特色。鑒于此蚓土,鄙人就想去學(xué)一下Python宏侍。
1.4 數(shù)字和表達(dá)式
??交互式Python解釋器可以當(dāng)做非常強(qiáng)大的計算器使用,如下所示:
>>>2+2
4
>>>1/2
0
??當(dāng)使用兩個整數(shù)使用除法時蜀漆,發(fā)現(xiàn)小數(shù)部分被截斷谅河,只留下整數(shù)部分。如果參與除法的兩個數(shù)至少有一個為浮點(diǎn)數(shù)确丢,結(jié)果亦為浮點(diǎn)數(shù):
>>>1.0/2.0
0.5
>>>1/2.0
0.5
??除了使用浮點(diǎn)數(shù)外绷耍,還可以在程序前加上如下語句,也可以實(shí)現(xiàn)上述功能:
>>>from __future__ import division
??當(dāng)執(zhí)行上述語句在執(zhí)行整數(shù)相除時鲜侥,不會截斷小數(shù)部分褂始,介于此Python提供了兩外一個用于實(shí)現(xiàn)整除的操作符(雙斜線(//))
??除此之外,還有取余運(yùn)算符(%)描函、冪運(yùn)算符(**)
??Python可以處理非常大的整數(shù)崎苗。普通整數(shù)不能大于2147483647(也不能小于-2147483648),如果真的需要大數(shù)舀寓,可以用長整型胆数。長整型書寫方法和普通整數(shù)一樣,但是結(jié)尾有個L互墓。
??Python支持十六進(jìn)制和八進(jìn)制必尼,在十六進(jìn)制前加0x(0xAF=175)表示十六進(jìn)制,加0(010=8)表示八進(jìn)制
1.5 變量
??在Python中篡撵,變量名可以包括字母判莉、數(shù)字和下劃線(_)。變量不能以數(shù)字開頭育谬,所以Plan9是合法變量骂租,而9Plan不是。在使用變量之前斑司,需要對其賦值,畢竟使用沒有值的變量也沒意義。
1.6 語句
1.7 獲取用戶輸入
??獲取用戶輸入可以用input()函數(shù)宿刮,如下所示:
>>>input("The meaning of life: ")
The meaning of life: 42
42
??在執(zhí)行input語句后互站,打印出字符串"The meaning of life:",以此作為提示符等待用戶輸入僵缺,input函數(shù)的結(jié)果值就是輸入的值胡桃,它會自動在最后一行打印出來。
1.8 函數(shù)
??函數(shù)就像可以用來實(shí)現(xiàn)特定功能的小程序一樣磕潮。Python的很多函數(shù)都能做很奇妙的事情翠胰。事實(shí)上,也可以自己定義函數(shù)自脯。通常會把pow等標(biāo)準(zhǔn)函數(shù)稱為內(nèi)建函數(shù)之景。像pow用于求冪(如2^3=pow(2,3)),abs用于取絕對值(如abs(-1)=1)膏潮,round用于求四舍五入為最接近的整數(shù)值(如round(4.5)=5)
1.9 模塊
??可以把模塊想象成導(dǎo)入到Python以增強(qiáng)其功能的擴(kuò)展锻狗。需要使用特殊的命令import來導(dǎo)入模塊,如下所示:
>>>import math
>>>maath.floor(32.9)
32.0
??用import導(dǎo)入模塊焕参,然后按照"模塊.函數(shù)"的格式使用這個模塊的函數(shù)轻纪,int函數(shù)把浮點(diǎn)數(shù)轉(zhuǎn)化為整數(shù):
>>>int(math.floor(32.9))
32
??在確定自己不會導(dǎo)入多個同名函數(shù)(在不同模塊導(dǎo)入)的情況下,可以使用import命令的另外一種形式:
>>>from math import sqrt
>>>sqrt(9)
3.0
??在使用了"from模塊import函數(shù)"這種形式的import命令之后叠纷,就可以直接使用函數(shù)刻帚,而不需要模塊名作為前綴。事實(shí)上涩嚣,可以使用變量來引用函數(shù)崇众。比如,通過foo=math.sqrt進(jìn)行復(fù)制缓艳,然后就可以使用foo來計算平方根了:foo(4)的結(jié)果為2.0饱亿。
??math模塊的sqrt函數(shù)不能求負(fù)數(shù)的平方根,否則會報錯浓冒,即其只能處理浮點(diǎn)數(shù)而不能處理虛數(shù)笔刹,虛數(shù)的平方根需要使用cmath模塊:
>>>import cmath
>>>cmath.sqrt(-1)
1j
??注意,這里并沒有使用from...import...語句溪窒。因為一旦使用了這個語句坤塞,就沒法使用普通的sqrt函數(shù)了,即函數(shù)沖突澈蚌。因此摹芙,除非真的需要使用from這個形式的模塊導(dǎo)入語句,否則應(yīng)該堅持使用普通的import宛瞄。
??Python語言本身提供了對負(fù)數(shù)的支持:
>>>>(1+3j)*(9+4j)
(-3+31j)
1.11 字符串
??字符串是值浮禾,就像數(shù)字一樣:
>>>"Hello,world!"
'Hello,world!'
??當(dāng)打印出的時候使用了單引號,和雙引號是一樣的,再看:
>>>"Let's go!"
"Let's go!"
>>>>'"Hello,world!"she said'
'"Hello,world!"she said'
??上面字符串包含了單引號(或者佳作撇號)盈电,這時候就不能用單引號將這個字符串括起來了蝴簇,否則會報錯。除了使用雙引號外匆帚,還可以對字符串中的單引號進(jìn)行轉(zhuǎn)義:
>>>'Let\'s go!'
"Let's go!"
??拼接字符串使用'+'號熬词,例如:
>>>"Hello,"+"world!"
'Hello,world!'
??在Python中,可以使用str吸重、repr和反引號將值轉(zhuǎn)化為字符串互拾。函數(shù)str讓字符串更易于閱讀,而repr(和反引號)則把結(jié)果字符串轉(zhuǎn)化為合法的Python表達(dá)式嚎幸。
??input函數(shù)和raw_input函數(shù)的區(qū)別在于raw_input會把所有的輸入當(dāng)做原始數(shù)據(jù)颜矿,然后將其放入字符串中:
>>>input("Enter a number:")
Enter a number: 3
3
>>>raw_input("Enter a number:")
Enter a number: 3
'3'
??如果需要些一個非常非常長的字符串,它需要跨多行鞭铆,那么可以使用三個引號代替普通引號:
>>>print '''This is a very long string.
It continues here.
And it's not over yet.
"Hello,world!"
Still here.'''
也可以使用三個雙引號或衡,用這種方法,可以在字符串之中同時使用單引號和雙引號车遂,而不需要使用反斜線進(jìn)行轉(zhuǎn)義封断。
??原始字符串對于反斜線的使用不會過分挑剔,如下所示:
>>>path=r'C:\workplace\python\demo.py'
>>>print path
C:\workplace\python\demo.py