Python可以說(shuō)是最簡(jiǎn)單的編程語(yǔ)言,任何學(xué)過(guò)c語(yǔ)言的人都能快速入門(mén),其文本處理能力強(qiáng)大,是工程師必不可少的工具 “ 目錄 上篇 什么是腳本語(yǔ)言 如何安裝python hello world 隨意變換字符串和數(shù)字 定義一個(gè)簡(jiǎn)單函數(shù) for, while, if…else…結(jié)構(gòu) 下篇 強(qiáng)大的string文本處理 列表,元組,字典 讀寫(xiě)文本文件 導(dǎo)入庫(kù)來(lái)實(shí)現(xiàn)高級(jí)功能 建一個(gè)自己的庫(kù) ” 1 什么是腳本語(yǔ)言 腳本語(yǔ)言是自C/C++之后興起的編程語(yǔ)言,主要代表是python, perl, ruby等。不少人大學(xué)里都學(xué)過(guò)匯編語(yǔ)言和C語(yǔ)言,老師上課時(shí)教導(dǎo)說(shuō),匯編語(yǔ)言屬于低級(jí)語(yǔ)言,是機(jī)器語(yǔ)言,而C語(yǔ)言是高級(jí)語(yǔ)言,因?yàn)镃語(yǔ)言更接近英語(yǔ)中的”白話文”,容易被人看懂。隨著時(shí)代發(fā)展,這個(gè)定義現(xiàn)在要被推翻了,可以說(shuō),匯編語(yǔ)言是低級(jí)語(yǔ)言,C語(yǔ)言是中級(jí)語(yǔ)言,而腳本語(yǔ)言是高級(jí)語(yǔ)言。相對(duì)于C語(yǔ)言,python ,perl, ruby等腳本的特點(diǎn)有: a、無(wú)需編譯,C語(yǔ)言需要用VC++編譯器編譯,之后生成一個(gè)exe,然后點(diǎn)擊exe才能真正運(yùn)行程序,而腳本語(yǔ)言可以隨時(shí)運(yùn)行,代碼寫(xiě)完按下F5就可以直接運(yùn)行。 b、更簡(jiǎn)單的編程,腳本語(yǔ)言取消了C語(yǔ)言中最大的難點(diǎn)指針,大大解放了程序員,另外,尤其是python,其編寫(xiě)更為隨意,更加接近于”白話文”的水準(zhǔn)。 c、不再關(guān)注底層,腳本是工具,更側(cè)重于解決問(wèn)題,一個(gè)原則是好用就行,莫談原理,無(wú)需像C語(yǔ)言那樣糾結(jié)于內(nèi)存分配,內(nèi)存泄露,虛函數(shù)表等等。 d、主流linux版本系統(tǒng)已直接嵌入python perl ruby,無(wú)需安裝,隨便打開(kāi)個(gè)文本寫(xiě)完直接運(yùn)行,當(dāng)然windows下還得安裝一下。 e、額外指出一點(diǎn),高級(jí)語(yǔ)言的底層,仍然是靠C/C++和匯編語(yǔ)言這些低級(jí)語(yǔ)言構(gòu)成的。 2 如何安裝python 雖然python已經(jīng)內(nèi)嵌入Linux但大多數(shù)人用的都是windows,直接下載一個(gè)python安裝包,一般是2.7.xx的版本即可,只有15M大小。安裝完成后打開(kāi)python IDLE即可直接敲代碼了。 3 hello world a、不知道誰(shuí)起的頭第一個(gè)程序都是hello world print ‘hello world’ # 很簡(jiǎn)單,直接打印出hello word 這里python的注釋采用井號(hào),而不是c語(yǔ)言的// 結(jié)尾也沒(méi)有C語(yǔ)言的分號(hào) 字符串用單引號(hào)和雙引號(hào)都可以 b、hello world的進(jìn)階 a = “hello world” print a python 無(wú)需像C語(yǔ)言要先申明string a或者char a,而可以直接給變量賦值 可以直接打印任何的變量,無(wú)需理會(huì)其類型,不像c語(yǔ)言必須使用printf(%s)指定其格式 c、hello world再進(jìn)階 a = ‘hello’ b = ‘world’ print a , ’ ’ , b 這里一樣打印出hello world,多個(gè)變量可以依次打印在一行里 4 隨意變換字符串和數(shù)字 a = 1 b = 2 c = a+b # 顯然這里c=3 a= ‘a(chǎn)aa’ b=’bbb’ c=a+b print c #c等于aaabbb python中無(wú)需定義數(shù)據(jù)類型,同一個(gè)變量a可以先賦值給數(shù)字,然后賦值給字符串,在大多數(shù)類python的“高級(jí)”語(yǔ)言中,指針被隱藏了,變量名就是指針,賦值的本質(zhì)是賦指針,如a=5,則在內(nèi)存中開(kāi)一個(gè)空間寫(xiě)入數(shù)字5,指針a指向這個(gè)內(nèi)存地址,隨后a=’bbbb’,則在內(nèi)存中另一個(gè)地方新開(kāi)空間寫(xiě)入字符串’bbbb’,將a的指針重新指向這個(gè)地址。原先的數(shù)字5仍然在內(nèi)存空間中的老地方,稍后由操作系統(tǒng)回收,這就是和C語(yǔ)言賦值原理的不同,也是他的便利所在。 5 定義一個(gè)簡(jiǎn)單函數(shù) 和C 語(yǔ)言一樣,可以定義自己的函數(shù),我們自己定義一個(gè)叫test的函數(shù),格式如下 def test(x+y): a = x + y b = x – y return a,b c, d= test(10,15) #使用這個(gè)函數(shù) print c print d 這里有兩個(gè)知識(shí)點(diǎn) a、C語(yǔ)言的段落使用兩個(gè)大括號(hào)表示一個(gè)代碼段,python使用冒號(hào),冒號(hào)之后要縮進(jìn),當(dāng)不再縮進(jìn)的時(shí)候,就說(shuō)段落結(jié)束。 b、Python函數(shù)可以有多個(gè)返回值,C語(yǔ)言只能有一個(gè)返回值,如果要返回多個(gè),必須打包成一個(gè)數(shù)組,而python不需要。 6 for, while, if…else…結(jié)構(gòu) a、if…else…結(jié)構(gòu) a=85 If a>=90: print “A” elif a>=80 and a<> print “B” else: print “C” 和C語(yǔ)言類似,只是elif比C語(yǔ)言的else if少寫(xiě)了幾個(gè)字,另外請(qǐng)注意冒號(hào)之后的縮進(jìn)。 b、while結(jié)構(gòu) 第一種,while條件判斷為真則繼續(xù) i=0 while i<> print i i=i+1 第二種,while內(nèi)部break i=0 while (1): print i i=i+1 If i==100: break 這兩種都和C語(yǔ)言風(fēng)格類似,不用多說(shuō)。 c、for結(jié)構(gòu) for和C語(yǔ)言有很大區(qū)別,其本質(zhì)類似于perl中的foreach,而不是傳統(tǒng)C語(yǔ)言的for。 例如:從數(shù)字1打印到9 for a in range (1,10): print a 這段for循環(huán)代碼會(huì)實(shí)現(xiàn)從數(shù)字1打印到數(shù)字9,注意不是10 range本身是一個(gè)系統(tǒng)自帶的函數(shù),他會(huì)生成一個(gè)從1,2,3,4….,8,9的數(shù)字?jǐn)?shù)組(在python中數(shù)組叫列表),隨后,for循環(huán)會(huì)依次遍歷這個(gè)列表,把其中的每一個(gè)值取出來(lái),賦值給變量a。關(guān)于列表,我們稍后就講。 階段小結(jié): 這一期主要對(duì)比了python和傳統(tǒng)C語(yǔ)言在基本語(yǔ)法的不同,本質(zhì)來(lái)說(shuō),任何編程語(yǔ)言的思想都是一致的,從簡(jiǎn)單的函數(shù),到循環(huán),條件分支,再到復(fù)雜的面向?qū)ο笏季S。下一期我們會(huì)講python中一些相對(duì)高級(jí)功能,主要是字符串和列表的使用。 周捷 E課網(wǎng)優(yōu)秀講師 芯片驗(yàn)證工程師,具有豐富的項(xiàng)目經(jīng)驗(yàn) 注:?本文為“E課網(wǎng)”原創(chuàng),版權(quán)歸“E課網(wǎng)”所有,歡迎分享! |
|