Python入門之你必須了解的基礎(chǔ)知識
一:python的安裝與一生中的第一個程序
要寫python程序必須要安裝python啊!我以為是直接寫呢,暈。我還是先去看看資料為什么要先安裝python。通過查詢我知道了,原來計算機程序分幾種,1種是編譯型的,1種是解釋型的。編譯型的像C C++,解釋型的像python perl ruby.哦!不過我還是不太明白,只是有點點概念了!不管了!反正大概知道了,編譯型的需要先寫好源代碼然后編譯鏈接才能運行,解釋型的就相當(dāng)于一個計算機的翻譯,可以一條一條的執(zhí)行。
我就先安裝python的這個翻譯了!谷歌搜索到了python的官方網(wǎng)站,暈!有2個派系的安裝文件,不管了!2.7的應(yīng)該比3.2的要簡單的,就安裝2.7的吧(教材上也安裝的2點幾的)。因為以前安裝過游戲,嘿嘿,我知道如何安裝的。不一會兒,安裝好了。然后我打開了標(biāo)準(zhǔn)python解釋環(huán)境IDLE.我按照書上打下1行代碼:
- print "Hello, world!"
當(dāng)我再按下回車,居然出現(xiàn)了一行:
Hello, world!
我懂一點點英語,知道這個print是打印的意思,哈哈!這個好,這么快就寫出了1行代碼。哈哈!
嘿嘿,計算機還是很聰明的啊!反應(yīng)也很快!我胡亂輸入點看它是什么反應(yīng)啊!暈!不行,輸出了幾行怪模怪樣的東西,先不管了,還是先嚴(yán)格按照書上說的寫啊!
書上說寫python代碼可以選擇很多種IDE(集成開發(fā)環(huán)境),哦原來這個IDE是多了很多幫助你寫代碼的工具。有什么代碼自動完成,高亮顯示什么的,唉!先不忙了!就像用標(biāo)準(zhǔn)的IDLE吧。
二:算法的意義
哦!算法!我得仔細瞧瞧這個是個什么東西啊!哦!算法原來就像你平時每天生活所以安排的事情的詳細描述啊。比如早上起來是先刷牙啊還是先洗臉啊!或者是拖地啊!需要每天拖一次啊。哦!大概明白點了!
三:好奇心與一個強大IDE的安裝
剛才看到書中介紹了那么多的IDE,我想我還是去尋找個,這樣感覺自己確實是很努力的在探索知識。我看到那么多的IDE介紹真不知道該選擇哪個,于是我到網(wǎng)上搜索了一番,決定使用不少人推薦的Eclipse。不過我在搜索的過程中看到了一句話,程序員分3種,1種用emacs,1種用vim,1種用其他。暈了。我進一步搜索,emacs是神的編輯器,VIM是編輯器之神,我郁悶,那不是用其他類型的都和神沒有關(guān)系,我仔細掂量了下自己,剛開始寫了第一行代碼,和神的距離是遙不可及的,那就先用eclipse,關(guān)于神的事情以后我再弄。我找了篇文章介紹eclipse python環(huán)境的搭建?;?0分鐘搞定了,打開用了下,感覺確實不錯啊。你打個pr就會自動提示print每寫完一行代碼,按下F9就執(zhí)行了,嗯,不錯。
三:數(shù)字和表達式
哦!python能進行一些類始于計算機的功能啊!我試試,我在eclipse中輸入
- print 2 + 2
按F9輸出了4,嘿嘿,果然不耐,可以進行數(shù)字的加法呢。我再試試除法
- print 1 / 2
暈,為什么輸出0.哦!原來python做整數(shù)除法的時候小數(shù)部分會被截除。是這樣子啊,那有什么辦法讓它保留小說呢,辦法就是用實數(shù),而且參與除法的兩個數(shù)中有以一個數(shù)為浮點數(shù),就可以了。我試試
- >>>1.0 / 2.0
- 0.5>>>1 / 2.00.5
- >>>1.0 / 2
- 0.5>>>1 / 2.0.5
哈哈不錯!而且,表示實數(shù),在整數(shù)后只跟1個點也可以的,哈哈!但是這樣用有時候覺得有點繁瑣,如果希望python只執(zhí)行普通的除法該怎么辦啊!書上說有辦法,就是在代碼前增加一行代碼:
- from __future__ import division
- print 1 / 2
- print 1 // 2
這樣整數(shù)除法就不會做整除了,但是如果還是想整除就可以用兩個//。仔細想想,除了(加,減,乘,除)應(yīng)該還可以取余,乘方啊,我試試:
- print 1 % 2
- print 10 / 3
- print 10 % 3
- print 9 % 3
- print 2.34 % 0.5
- ________________________________
- 1
- 3
- 1
- 0
- 0.34
哈哈不錯!完全沒有問題,不過取余運算在哪些地方有用的啊。不錯,比如你要每10分鐘拖地1次,就可以拿檢查時間10%的結(jié)果是否為0做判斷即可,哈哈!仔細想象還真是這樣啊,原來取余可以這樣應(yīng)用的。
暈!剛才沒寫完就點發(fā)布了!現(xiàn)在接著學(xué)習(xí),長整型!長整型也就是很長很長的整數(shù)類型吧。我在交互環(huán)境試試,主要是我現(xiàn)在還寫不出很長的代碼,用eclipse暫時太浪費了(唉!離神的距離更遠了!),我試試看,很長很長的整數(shù),看看python如何回應(yīng)!
- >>> 999999999999999999999999999999999999999
- 999999999999999999999999999999999999999L
哦!回應(yīng)是回應(yīng)對了,可是為什么后面有個L啊!哦原來啊,普通的整數(shù)只能在一個范圍內(nèi)的,(2147483647-2147483648).哇!剛才我寫的數(shù)字超過了普通整數(shù)耶!所以后面有個L啊。哦,幸好是大寫L啊,要是小寫的話和1很像啊,我得記住,這個L以后一定要大寫。
十六進制和八進制 什么是進制!我查詢了有關(guān)資料!知道了,原來十六進制就是到了16就進一,八進制就是到了8就進一。哦,十進制就是生活中常用的,到了10就進1位啦!唉!為什么人要用十進制啊,要是用十六,八的話,就會明白得更快啊!可惜啊,人只有十個手指頭!嘿嘿!
變量 哦!變量應(yīng)該是這樣子的,就相當(dāng)于1個箱子,然后里面可以放東西!變量得有個名字,一定要好聽而且好認啊,書上有變量取名字很重要哦!而且變量可以包括字母,數(shù)字和下劃線開頭,但是不能用數(shù)字開頭。哦,記住這點。
語句 哦!到目前啊!我一直學(xué)的東西叫表達式,也就像食譜中的菜。然后呢,我現(xiàn)在要學(xué)的是語句,也就是如何去做這些菜,嘿嘿好玩,我現(xiàn)在要開始做菜了!唉!不對啊,我剛才好像已經(jīng)做過菜了耶!我回憶1下:
其中的print就是如何做菜的指令語句,2*2就是菜。然后m=2也是把菜2放到m的箱子里。沒錯,之前已經(jīng)做過“菜”了。嘿嘿。
獲取用戶輸入. 對!我想起來了。一般的程序都需要讓用戶輸入一些“菜”,然后程序員去安排怎么去做“菜”呢。剛才我寫的全都是相當(dāng)于程序?qū)懞玫牟税 +@取用戶的輸入的話,需要用1個函數(shù)input,暈死!什么是函數(shù),我得去搜索下相關(guān)知識!通過搜索我知道了函數(shù)其實就是一段重復(fù)利用的代碼塊!哦,原來是這樣子的,就相當(dāng)于一把刀,隨時可以用它來“切菜”。想切就切。但是input這個函數(shù)到底在哪里啊,python怎么認識的,我郁悶,我不知道,那就先不管了,我就想象python已經(jīng)知道了。我現(xiàn)在在交互式下試試這個函數(shù)
- >>>input("the meaning of life:")
- the meaning of life:25
- 25
哈哈!真的輸入輸出了!但是仔細一想,這樣做沒什么用啊。只是回顯出來給我看了下用戶輸入的值。暈死!不行,實際這樣做沒什么用處!我突然想起了“箱子”,我必須把它放在1個“箱子”里。這樣我才可以很好的利用它啊。我試試:
- >>>x = input("x:")
- x: 23
- >>>y = input("y:")
- y: 32
- >>>print x * y
- 736
哈哈!不錯!這樣做就好多啦!我把“菜”放入了“箱子”,而且我還計算輸入了2個數(shù)的乘積。
if.if語句。哦!這個應(yīng)該是如果的意思,那也就是說,如果怎么樣了,才怎么樣!嗯!這個好,以前我寫的幾行代碼,都是一條一條的執(zhí)行的!現(xiàn)在有了這個東西就可以如果怎么樣了就怎么樣了啊,哈哈!就感覺上街買菜啊!如果2.5一斤我才買,多了就不買,嘿嘿!我試試這個的效果。我把前面學(xué)習(xí)的綜合來試試,嘿嘿:
- >>> m = 10
- >>> if m > 20
- SyntaxError: invalid syntax
- >>> if m > 20:
- print "OK" >>> if m > 2:
- print "OK"
- OK
嘿嘿!不錯,中間我還出了個問題,居然在if語句后面還要打個:號。暈!記住!
四:函數(shù)
函數(shù)的話,我之前也已經(jīng)查詢了有關(guān)資料,其實就是一段可以重復(fù)利用的小程序段。剛才我不知道python怎么知道input的函數(shù)的?,F(xiàn)在我知道了,原來是這樣子的。input是標(biāo)準(zhǔn)函數(shù),也被稱為內(nèi)建函數(shù)!所以python知道的,就相當(dāng)于1個人肯定知道有沒有嘴巴,耳朵一樣嘿嘿。其實剛才的乘方可以用內(nèi)建函數(shù)pow來實現(xiàn):
- >>> 2 ** 3
- 8
- >>> pow(2,3)
- 8
其實這種行為就叫做函數(shù)調(diào)用啦!一個函數(shù)調(diào)用行為需要給函數(shù)參數(shù),參數(shù)的個數(shù)和不同的函數(shù)實現(xiàn)是有關(guān)系的。上面pow的例子是給2個參數(shù),然后函數(shù)會返回1個值,這個值就是冪運算啦!因為是交互式環(huán)境,所以就直接打印出函數(shù)返回值了!哈哈,又學(xué)到點東西啦!唉!內(nèi)建函數(shù)還不少啊!我得記住啊!認真實踐下比如abs,round,等等,好多呢!
五:模塊
誒!模塊是個什么東西。哦!原來模塊是增強python功能的擴展。就相當(dāng)于,我買了1輛“大黃蜂”,這樣我就能更快的去更遠的地方!呵呵。模塊里有很多擴展的函數(shù),就相當(dāng)于“大黃蜂”,內(nèi)建函數(shù)就相當(dāng)于自身有史以來的嘴巴,耳朵。呵呵!比如floor這個函數(shù),可以向下取整。但是這個函數(shù)不在內(nèi)建函數(shù)中,而在其他模塊中(math模塊中),這就需要用一個命令import來導(dǎo)入模塊了!我試試:
- >>> import math
- >>> math.floor(32.9)
- 32.0
哈哈,不錯!成功了!導(dǎo)入1個模塊后,只要用模塊名.函數(shù)的格式就可以使用這個模塊中的函數(shù)了。但是我注意到1個問題啊,floor向下取整后,出來的結(jié)果是浮點數(shù),如果我要把它編程整數(shù)怎么辦啊!還好有個辦法,用int函數(shù)把它包起來,試試:
- >>> int(math.floor(32.9))
- 32
哈哈啊!成功了!不錯啊。但是每次用math模塊里的函數(shù)都要加模塊名.的前綴,還是非常麻煩啊,怎么辦啊!有個解決辦法,用form模塊import函數(shù)。這樣的形式就可以直接用函數(shù)了,不用加模塊名前綴了。試試:
- >>> from math import sqrt
- >>> sqrt(9)
- 3.0
嗯,太好了!
如何在WINDOWS下雙擊執(zhí)行python程序.如果要像普通應(yīng)該程序一樣在windows下雙擊執(zhí)行,得注意幾個問題呢!第一個保存的文件后綴要為.py(這里要注意啊,WINDOWS默認是隱藏了后綴名的,如果你記事本編輯出來的文件后綴其實是.txt,所以得把默認的隱藏后綴改為顯示出來。)再一個就是要把python解釋器所在的目錄加到系統(tǒng)path環(huán)境變量里,這樣,windows才能找到python解釋器呢。還要注意的一個問題的,我像如下寫的代碼
- print "hello world!"
保存為.py結(jié)尾的文件,path環(huán)境變量也設(shè)置好了后,雙擊后程序一閃而過,暈死!這里必須還要加行代碼才行,如下:
- print "helloworld!"raw_input("Press ")
哈哈,這樣就好了!你就能看到程序運行的結(jié)果了!不錯吧!哈哈!
注釋。這個注釋非常重要啊,我查詢了有關(guān)資料說,寫好注釋不光是方便了自己以后讀自己的代碼,也是給別人讀你代碼提供了很大的幫助。多些注釋啊,但是簡單到白癡的代碼行也就不要寫了,嘿嘿!
七:字符串.
最早我寫的那行print "Hello, world!"嘿嘿!這個程序中這個"Hello,world"是什么,這個就是字符串了。python里字符串其實和數(shù)字一樣啊!也是1個值呢!我們來看個字符串:
- >>> "Hello,world!"
- 'Hello,world!'
- >>> "Let's go!
- ""Let's go!"
- >>> 'Let's go!'
- SyntaxError: invalid syntax
- >>> 'Let\'s go!
- '"Let's go!"
嘿嘿,發(fā)現(xiàn)沒有!python中的字符串,單引號和雙引號結(jié)果是一樣,但是在單引號和雙引號混用的時候就表現(xiàn)出來它的作用了;反斜杠呢可以用來轉(zhuǎn)義!這樣就可以在一個字符串中只用一種引號形式了!
字符串的拼接 字符串的拼接呢是用“+”例如:
- >>> "Hello," + "world!"
- 'Hello,world!'
- >>> x = "Hello,"
- >>> y = "world!"
- >>> x + y
- 'Hello,world!'
哈哈,不錯吧,加號還有這個作用呢!
字符串的表示,str和repr.python中對字符串的處理有兩種機制。什么是機制,唉!就想象成辦法和做法吧!我暫時也不是很理解!。一種是通過str函數(shù),它會把值轉(zhuǎn)換為合理形式的字符串,使用戶看起來容易理解;一種是通過repr函數(shù),它會以合法的python表達式的字符串形式來表示值,如下:
- >>> print repr("Hello,world!")
- 'Hello,world!'
- >>> print repr(10000L)
- 10000L
- >>> print str("Hello,world!")
- Hello,world!
- >>> print str(10000L)
- 10000
嘿嘿,明白了。這樣做是有道理的,請看如下事例:
- >>> temp = 42
- >>> print "The temperature is" + temp
- Traceback (most recent call last):
- File "<pyshell#36>", line 1, in <module>
- print "The temperature is" + temp
- TypeError: cannot concatenate 'str' and 'int' objects
- >>> print "The temperature is" + repr(temp)
- The temperature is42
哈哈!第一print語句為什么錯誤,那是因為不可以將字符串和數(shù)字相加呢!第二個正確是因為已經(jīng)通過repr把temp變量轉(zhuǎn)換為了字符串形式呢!反正!str,repr是將python轉(zhuǎn)換為字符串的2種方法啦!函數(shù)str讓字符串更容易閱讀!,repr把結(jié)果字符串轉(zhuǎn)換為合法的python表達式.
input和raw_input的區(qū)別 以前我已經(jīng)用過input進行用戶的輸入了,但是這里為什么還要有個raw_input啊,難道其中有什么原因嗎,我寫個代碼看看:
- name = input("What is your name?")
- print "Hello." + name + "s"
- ‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’
- ‘What is your name?dodolook
- 出錯?。。。?!
暈!這樣的代碼看起來沒有任何問題,為什么會出錯啊!哦!原來問題在于input會假設(shè)用戶舒服的是合法的python表達式,如果用字符串作為輸入名字,這個程序就不會用問題,然而要求用戶輸入名字還要加個引號實在有點過分啊!怎么辦呢,這個時候就需要用raw_input函數(shù)了。它會把所以的輸入當(dāng)作原始數(shù)據(jù),然后放入其字符串中。嘿嘿,所以沒有特別的需要,都用raw_input吧。關(guān)于什么特別需要的時候用input,唉!暫時不管了!
長字符串。在書寫非常長的字符串的時候,例如它需要跨多行的時候,那么可以使用3引號。而且啊這種與眾不同的引用方式,你可以在字符串之間同時使用單引號和雙引號,而不需要使用反斜線呢!
原文鏈接:http://www.cnblogs.com/dodolook/archive/2011/05/19/2051038.html
【編輯推薦】