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















 
 
 







 
 
 
 