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

























