Python入門之你必須了解的基礎知識

作者: dodolook  來源: 博客園  發布時間: 2011-06-07 13:05  閱讀: 4887 次  推薦: 3   原文鏈接   [收藏]  
摘要:著名的自由軟件作者Eric Raymond在他的文章《如何成為一名黑客》中,將Python列為黑客應當學習的四種編程語言之一,并建議人們從Python開始學習編程。本文將與你分享Python的基礎知識。

  我找到了1本python的書,聽說這個教程非常的基礎。那就太好了,我從來沒有寫過程序,那就從這本書開始學習啊,哈哈。我是想邊學編程邊做一些學習記錄方便以后復習啊,再就是可以監督自己學得認真點啊,讓自己學得更牢靠。我一定會堅持下去的。因為我夢想有一天能知道程序到底是個什么玩意。我覺得程序那些功能很神奇。我要搞清楚它。

  開始看書實踐學習!

  一:python的安裝與一生中的第一個程序

  哦!要寫python程序必須要安裝python啊!我以為是直接寫呢,暈。我還是先去看看資料為什么要先安裝python。通過查詢我知道了,原來計算機程序分幾種,1種是編譯型的,1種是解釋型的。編譯型的像C/C++,解釋型的像python/perl ruby. 哦!不過我還是不太明白,只是有點點概念了!不管了!反正大概知道了,編譯型的需要先寫好源代碼然后編譯鏈接才能運行,解釋型的就相當于一個計算機的翻譯,可以一條一條的執行。

  我就先安裝python的這個翻譯了!谷歌搜索到了python的官方網站,暈!有2個派系的安裝文件,不管了!2.7的應該比3.2的要簡單的,就安裝2.7的吧(教材上也安裝的2點幾的)。因為以前安裝過游戲,嘿嘿,我知道如何安裝的。不一會兒,安裝好了。然后我打開了標準python解釋環境IDLE.我按照書上打下1行代碼:

 
print "Hello, world!"

  當我再按下回車,居然出現了一行:

 
Hello, world!

  我懂一點點英語,知道這個print是打印的意思,哈哈!這個好,這么快就寫出了1行代碼。哈哈!

  嘿嘿,計算機還是很聰明的啊!反應也很快!我胡亂輸入點看它是什么反應啊!暈!不行,輸出了幾行怪模怪樣的東西,先不管了,還是先嚴格按照書上說的寫啊!

  書上說寫python代碼可以選擇很多種IDE(集成開發環境),哦,原來這個IDE是多了很多幫助你寫代碼的工具。有什么代碼自動完成,高亮顯示什么的,唉!先不忙了!就像用標準的IDLE吧。

  二:算法的意義

  哦!算法!我得仔細瞧瞧這個是個什么東西啊!哦!算法原來就像你平時每天生活所以安排的事情的詳細描述啊。比如早上起來是先刷牙啊還是先洗臉啊!或者是拖地啊!需要每天拖一次啊。哦!大概明白點了!

  三:好奇心與一個強大IDE的安裝

  剛才看到書中介紹了那么多的IDE,我想我還是去尋找個,這樣感覺自己確實是很努力的在探索知識。我看到那么多的IDE介紹真不知道該選擇哪個,于是我到網上搜索了一番,決定使用不少人推薦的Eclipse。不過我在搜索的過程中看到了一句話,程序員分3種,1種用emacs, 1種用vim, 1種用其他。暈了。我進一步搜索,emacs是神的編輯器,VIM是編輯器之神,我郁悶,那不是用其他類型的都和神沒有關系,我仔細掂量了下自己,剛開始寫了第一行代碼,和神的距離是遙不可及的,那就先用eclipse,關于神的事情以后我再弄。我找了篇文章介紹eclipse python環境的搭建。花了10分鐘搞定了,打開用了下,感覺確實不錯啊。你打個pr就會自動提示print每寫完一行代碼,按下F9就執行了,嗯,不錯。

  三:數字和表達式  

  哦!python能進行一些類始于計算機的功能啊!我試試,我在eclipse中輸入:

 
print 2 + 2

  按F9輸出了4,嘿嘿,果然不耐,可以進行數字的加法呢。我再試試除:

 
print 1 / 2

  暈,為什么輸出0.哦!原來python做整數除法的時候小數部分會被截除。是這樣子啊,那有什么辦法讓它保留小數點呢,辦法就是用實數,而且參與除法的兩個數中有以一個數為浮點數,就可以了。我試試

 
>>>1.0 / 2.0
0.5
>>>1 / 2.0
0.5
>>>1.0 / 2
0.5
>>>1 / 2.
0.5

  哈哈不錯!而且,表示實數,在整數后只跟1個點也可以的,哈哈!但是這樣用有時候覺得有點繁瑣,如果希望python只執行普通的除法該怎么辦啊!書上說有辦法,就是在代碼前增加一行代碼:

 
from __future__ import division
print 1 / 2
print 1 // 2

  這樣整數除法就不會做整除了,但是如果還是想整除就可以用兩個//。仔細想想,除了(加,減,乘,除)應該還可以取余,乘方啊,我試試:

 
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%的結果是否為0做判斷即可,哈哈!仔細想象還真是這樣啊,原來取余可以這樣應用的。

  暈!剛才沒寫完就點發布了!現在接著學習,長整型!長整型也就是很長很長的整數類型吧。我在交互環境試試,主要是我現在還寫不出很長的代碼,用eclipse暫時太浪費了(唉!離神的距離更遠了!),我試試看,很長很長的整數,看看python如何回應!

 
>>> 999999999999999999999999999999999999999
999999999999999999999999999999999999999L

  哦!回應是回應對了,可是為什么后面有個L啊!哦原來啊,普通的整數只能在一個范圍內的,(2147483647-2147483648). 哇!剛才我寫的數字超過了普通整數耶!所以后面有個L啊。哦,幸好是大寫L啊,要是小寫的話和1很像啊,我得記住,這個L以后一定要大寫。

  十六進制和八進制

  什么是進制!我查詢了有關資料!知道了,原來十六進制就是到了16就進一,八進制就是到了8就進一。哦,十進制就是生活中常用的,到了10就進1位啦!唉!為什么人要用十進制啊,要是用十六,八的話,就會明白得更快啊!可惜啊,人只有十個手指頭!嘿嘿!

  變量

  哦!變量應該是這樣子的,就相當于1個箱子,然后里面可以放東西!變量得有個名字,一定要好聽而且好認啊,書上有變量取名字很重要哦!而且變量可以包括字母,數字和下劃線開頭,但是不能用數字開頭。哦,記住這點。

  語句

  哦!到目前啊!我一直學的東西叫表達式,也就像食譜中的菜。然后呢,我現在要學的是語句,也就是如何去做這些菜,嘿嘿好玩,我現在要開始做菜了!唉!不對啊,我剛才好像已經做過菜了耶!我回憶1下:

  其中的print就是如何做菜的指令語句,2*2就是菜。然后m=2也是把菜2放到m的箱子里。沒錯,之前已經做過“菜”了。嘿嘿。

  獲取用戶輸入

  對!我想起來了。一般的程序都需要讓用戶輸入一些“菜”,然后程序員去安排怎么去做“菜”呢。剛才我寫的全都是相當于程序寫好的菜啊。獲取用戶的輸入的話,需要用1個函數input,暈死!什么是函數,我得去搜索下相關知識!通過搜索我知道了函數其實就是一段重復利用的代碼塊!哦,原來是這樣子的,就相當于一把刀,隨時可以用它來“切菜”。想切就切。但是input這個函數到底在哪里啊,python怎么認識的,我郁悶,我不知道,那就先不管了,我就想象python已經知道了。我現在在交互式下試試這個函數:

 
>>>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個數的乘積。

  if

  if語句。哦!這個應該是如果的意思,那也就是說,如果怎么樣了,才怎么樣!嗯!這個好,以前我寫的幾行代碼,都是一條一條的執行的!現在有了這個東西就可以如果怎么樣了就怎么樣了啊,哈哈!就感覺上街買菜啊!如果2.5一斤我才買,多了就不買,嘿嘿!我試試這個的效果。我把前面學習的綜合來試試,嘿嘿:

 
>>> m = 10
>>> if m > 20
SyntaxError: invalid syntax
>>> if m > 20:
  
print "OK"
>>> if m > 2:
  
print "OK"
OK

  嘿嘿!不錯,中間我還出了個問題,居然在if語句后面還要打個:號。暈!記住!

  四:函數

  函數的話,我之前也已經查詢了有關資料,其實就是一段可以重復利用的小程序段。剛才我不知道python怎么知道input的函數的。現在我知道了,原來是這樣子的。input是標準函數,也被稱為內建函數!所以python知道的,就相當于1個人肯定知道有沒有嘴巴,耳朵一樣嘿嘿。其實剛才的乘方可以用內建函數pow來實現:

 
>>> 2 ** 3
8
>>> pow(2,3)
8

  其實這種行為就叫做函數調用啦!一個函數調用行為需要給函數參數,參數的個數和不同的函數實現是有關系的。上面pow的例子是給2個參數,然后函數會返回1個值,這個值就是冪運算啦!因為是交互式環境,所以就直接打印出函數返回值了!哈哈,又學到點東西啦!唉!內建函數還不少啊!我得記住啊!認真實踐下比如abs, round等等,好多呢!

  五:模塊

  唉!模塊是個什么東西。哦!原來模塊是增強python功能的擴展。就相當于,我買了1輛“大黃蜂”,這樣我就能更快的去更遠的地方!呵呵。模塊里有很多擴展的函數,就相當于“大黃蜂”,內建函數就相當于自身有史以來的嘴巴,耳朵。呵呵!比如floor這個函數,可以向下取整。但是這個函數不在內建函數中,而在其他模塊中(math模塊中),這就需要用一個命令import來導入模塊了!我試試:

 
>>> import math
>>> math.floor(32.9)
32.0

  哈哈,不錯!成功了!導入1個模塊后,只要用模塊名.函數的格式就可以使用這個模塊中的函數了。但是我注意到1個問題啊,floor向下取整后,出來的結果是浮點數,如果我要把它編程整數怎么辦啊!還好有個辦法,用int函數把它包起來,試試:

 
>>> int(math.floor(32.9))
32

  哈哈啊!成功了!不錯啊。但是每次用math模塊里的函數都要加模塊名.的前綴,還是非常麻煩啊,怎么辦啊!有個解決辦法,用form模塊import函數。這樣的形式就可以直接用函數了,不用加模塊名前綴了。試試:

 
>>> from math import sqrt
>>> sqrt(9)
3.0

  嗯,太好了!

  如何在WINDOWS下雙擊執行python程序?如果要像普通應該程序一樣在windows下雙擊執行,得注意幾個問題呢!第一個保存的文件后綴要為.py(這里要注意啊,WINDOWS默認是隱藏了后綴名的,如果你記事本編輯出來的文件后綴其實是.txt,所以得把默認的隱藏后綴改為顯示出來。)再一個就是要把python解釋器所在的目錄加到系統path環境變量里,這樣,windows才能找到python解釋器呢。還要注意的一個問題的,我像如下寫的代碼:

 
print "hello world!"

  保存為.py結尾的文件,path環境變量也設置好了后,雙擊后程序一閃而過,暈死!這里必須還要加行代碼才行,如下:

 
print "helloworld!"
raw_input("Press <enter>")

  哈哈,這樣就好了!你就能看到程序運行的結果了!不錯吧!哈哈!

  注釋

  這個注釋非常重要啊,我查詢了有關資料說,寫好注釋不光是方便了自己以后讀自己的代碼,也是給別人讀你代碼提供了很大的幫助。多些注釋啊,但是簡單到白癡的代碼行也就不要寫了,嘿嘿!

  七:字符串

  最早我寫的那行print "Hello, world!"嘿嘿!這個程序中這個"Hello,world"是什么,這個就是字符串了。python里字符串其實和數字一樣啊!也是1個值呢!我們來看個字符串:

 
>>> "Hello,world!"
'Hello,world!'
>>> "Let's go!"
"Let's go!"
>>> 'Let's go!'
SyntaxError: invalid syntax
>>> 'Let\'s go!'
"Let's go!"

  嘿嘿,發現沒有!python中的字符串,單引號和雙引號結果是一樣,但是在單引號和雙引號混用的時候就表現出來它的作用了;反斜杠呢可以用來轉義!這樣就可以在一個字符串中只用一種引號形式了!

  字符串的拼接。字符串的拼接呢是用“+”例如:

 
>>> "Hello," + "world!"
'Hello,world!'
>>> x = "Hello,"
>>> y = "world!"
>>> x + y
'Hello,world!'

  哈哈,不錯吧,加號還有這個作用呢!

  字符串的表示,str和repr

  python中對字符串的處理有兩種機制。什么是機制,唉!就想象成辦法和做法吧!我暫時也不是很理解!。一種是通過str函數,它會把值轉換為合理形式的字符串,使用戶看起來容易理解;一種是通過repr函數,它會以合法的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語句為什么錯誤,那是因為不可以將字符串和數字相加呢!第二個正確是因為已經通過repr把temp變量轉換為了字符串形式呢!反正!str,repr是將python轉換為字符串的2種方法啦!函數str讓字符串更容易閱讀!repr把結果字符串轉換為合法的python表達式.

  input和raw_input的區別

  以前我已經用過input進行用戶的輸入了,但是這里為什么還要有個raw_input啊,難道其中有什么原因嗎,我寫個代碼看看:

 
name = input("What is your name?")
print "Hello." + name + "s"
‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘
What
is your name?dodolook
出錯!!!!!

  暈!這樣的代碼看起來沒有任何問題,為什么會出錯啊!哦!原來問題在于input會假設用戶舒服的是合法的python表達式,如果用字符串作為輸入名字,這個程序就不會用問題,然而要求用戶輸入名字還要加個引號實在有點過分啊!怎么辦呢,這個時候就需要用raw_input函數了。它會把所以的輸入當作原始數據,然后放入其字符串中。嘿嘿,所以沒有特別的需要,都用raw_input吧。關于什么特別需要的時候用input,唉!暫時不管了!

  長字符串

  在書寫非常長的字符串的時候,例如它需要跨多行的時候,那么可以使用3引號。而且啊這種與眾不同的引用方式,你可以在字符串之間同時使用單引號和雙引號,而不需要使用反斜線呢!

  嘿嘿!到此為止,第一本編程書的第一章節差不多學完了!花了4個小時學習時間!加油!為了能寫出程序的那個夢!

3
0
 
標簽:Python
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()