這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選

簡介:你曾經想知道計算機是如何工作的嗎?儘管我們不能在一篇文章裡面教會你所有的東西,但是可以通過學習如何寫出你自己的程序來獲得一個良好的開端。在這篇Python教程中,你將會學到計算機編程的基礎知識,使用對新手來 ...

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選

媒體技術概念


你曾經想知道計算機是如何工作的嗎?儘管我們不能在一篇文章裡面教會你所有的東西,但是可以通過學習如何寫出你自己的程序來獲得一個良好的開端。在這篇Python教程中,你將會學到計算機編程的基礎知識,使用對新手來說最棒的編程語言之一。
什麼是編程?
當然在學習Python的道路上肯定會困難,沒有好的學習資料,怎麼去學習呢?
所以小編準備了一份零基礎入門Python的學習資料。
注:想學習Python的小夥伴們,轉發文章+私信回覆【學習】

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


儘可能簡單的講,編程是編寫代碼,命令計算機去完成某項任務的藝術。這裡講的某項任務,可以是簡單的兩數相加,或是像把飛船送入軌道這樣的複雜任務!
一個程序裡面,最小的組成部分被稱作語句(statement)——代表了對計算機做出的一條指令。

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


當你完成了自己的程序後,編譯器會把你寫的代碼轉換為機器碼——計算機語言的最底層。機器碼指示中央處理器工作(central processing unit),或者叫做CPU,這裡麵包含一些諸如加載某個值或是做數學運算的步驟。
如果你曾經聽過某人說:“我編譯了我的程序”,那代表他們已經把代碼轉換成了機器碼。
為什麼不直接寫機器碼呢?原因很顯然,程序碼具有可讀性。下面比較了Python版的程序和其對應的機器碼:


Python代碼
print "Hello, World!"
...
"Hello, World!"
對應的機器碼

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


很明顯為什麼你不會想要直接編寫機器碼了。但是,確實有一些人會去寫機器碼——蘿蔔白菜各有所愛嘛!
上面我們忽略了一個小問題。Python是一種解釋型語言;你並不會像上面我們暗示的那樣,把它直接編譯成為機器碼。


實際上是這樣的,Python使用一個叫做解釋器的東西。解釋器是另外一個程序,把代碼編譯成叫做二進制碼的東西,然後再程序運行的時候再轉換成機器碼。你等下會學到更多和解釋器有關的內容。
當你最終運行程序的時候,你剛編譯的那些機器碼會被加載到內存中,CPU會讀取它並執行程序。
然而,在剛開始學習使用Python編程的時候,你並不需要完全理解編譯器的內部工作原理,但是你必須確保你已經安裝了Python。
準備開始
如果你在使用Mac,你走運了——Python已經預裝在Mac中了。在Mac中使用Python解釋器,打開**終端**(**Terminal.app**);你可以再應用程序/工具文件夾下找到它,或者在Spotlight中輸入,像這樣:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


打開終端後,輸入下面的指令然後按下回車:
$ python
你會看到類似下面這樣的結果:
注意:如果你沒有得到上面的結果,把輸出結果複製到論壇,我們會盡力幫助你的!**
Windows
在Windows上,這一過程稍微有點複雜——但是還是要說,大部分的東西還是在Windows!上:]
首先,在瀏覽器中訪問Python官網的下載頁面。

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


滾動頁面跳過所有的Python 3.x.x版本,直接到Python 2.7.x。下載Windows安裝包(Windows installer),運行,按照指引來做,接受默認的選項。
一旦安裝包安裝完成,你就可以啟動它了。
在Windows Vista或者Windows 7上,這樣啟動:
1. 點擊左下角的開始菜單。
2. 點擊所有程序
3. 打開Python文件夾
4. 雙擊IDLE解釋器
如果你使用Windows 8,這樣啟動:
1. 點擊左下角開始菜單
2. 在搜索框中輸入IDLE
3. 點擊IDLE(Python GUI)

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


不管你是如何啟動解釋器的,你應該確保它能夠工作,在終端中輸入如下命令,或者是在Windows的命令提示符中輸入如下指令並按回車:
print “Hello World!”
儘管看上去並不像,但是你已經寫完你第一個Python程序了!在學習大多數語言的時候,打印出Hello, World被認為是一個起點。
python 命令指示計算機在屏幕上輸出後面的字符——而不是在你的打印機上打印!注意“Hello World”兩邊的引號,引號中的任何東西都被看做常規的文本兒不會被解釋為一個指令。
變量
變量,是在計算機內存中存放數據的一種方式;在你的程序中你會經常用到它們。在一些語言中,變量有特定的類型,指明瞭這些變量屬於那些類。
在Python中,你不需要聲明變量的類型。現在暫時不需要在意這些細節;在本教程稍後的章節中你會學到關於這個內容的知識。
在解釋器中輸入如下命令並按回車:
hello = "Hello World!"
這麼做聲明瞭hello變量並且把Hello World賦值類了它。現在,你不需要在程序中需要“Hello World”的地方輸入這個字符串了,取而代之的是,你可以使用hello這個變量。


在解釋器中輸入如下命令並按回車:
print hello
這個指令會產生和Hello World例子相同的結果,但是它是打印出了hello這個變量的值。
變量同樣也可以用來儲存數字。在解釋器中輸入如下命令:
x = 5
print x
y = 10
z = x + y
print z
注意:從現在起,你可能要輸入多行語句,只需要在每行末尾輸入回車即可**
先猜猜看上面的代碼會做些上面,再看下面的答案:
這段代碼會打印5,然後打印15.第一個print語句打印了被你賦值為5的變量x。然後它打印了y+x的結果。因為y被賦值為10,x是5,所以打印了15。
對於你生命中的絕大部分程序變量是其核心。在你學習本教程的過程中,你會對變量變得非常熟悉。
變量類型
在之前的教程中你已經遇到了變量,但是我們並沒有仔細的介紹它。不同的變量類型存儲不同類型的值。
注意:對於全部的內建類型,請查看Python官方文檔
到目前為止,你僅僅和Python中兩個基本類型打過交道:整型(integers)和字符串型(strings),你還會遇到布爾類型(boolean),你可以用它來儲存True或者False。

下面有關於這些變量類型的一點介紹:
整型
一個整型數,是一個整數。整型數的範圍,在32位機上是-2147483648 到 2147483647 ,在64位機上是 -9223372036854775808 to 9223372036854775807。
你可以像這樣簡單的輸入一個數字來創建整型,不需要任何引號:
foo = 5
字符串型
字符串是一串字符;你可以使用字符串來表示很多東西,從屏幕上的任何文本到整個網頁請求。
通過用引號包含一串字符來創建字符串,就像下面一樣:
布爾類型
布爾類型代表了True或False。
你通過使用大寫開頭的True或False 來創建布爾類型,不需要引號,就像下面這樣:
`isFoo = True`
變量兩邊沒有引號;如果你用引號包含了True,你則是創建了一個字符串類型!
字符串連接和整數相加
Python讓兩個字符串鉤在一起變得很容易,我們也稱之為字符串連接。你可以使用str()把一個整數類型轉換成字符串,相反,你也可以使用int()把一個字符串轉換為整型。

在你的解釋器中輸入下面指令:
"1" + "1"
1 + 1
1 + int("1")
下面解釋上面代碼做了些什麼:
– 第一條語句連接了兩個字符串;引號確保了這兩個數字被當做字符串除了。結果就是”11″。
– 第二條語句把兩個數作為整數相加,結果是2.
– 最後一條語句把一個整數和另一個被轉換為整數的字符串相加,結果還是2。
if 語句
if語句檢查某個條件是不是真,如果是,則執行一段代碼。條件語句通常是這樣的形式值 - 操作符 - 值,通常是比較兩個值。
比如,你可以使用x == 0評價一個值是不是等於0,== 是等於操作符。
下面是Python中的一些常見比較
a == b: #Checks if a and b are equal
a != b: #Checks if a and b are not equal
a > b: #Checks if a is greater than b
a < b: #Checks if a is less than b
a >= b: #Checks if a is greater than or equal to b
a <= b: #Checks if a is less than or equal to b
if語句是如下的形式:
if conditional:
do_statements_here
注意到在這裡執行某些語句 這行是如何縮進的。這是你在Python聲明代碼塊的方式。同一個代碼塊中的每一行都必須和其他所有行縮進相同的製表符或是空格;這是語言強制規定的。換句話說,不要混合使用製表符和空格。創建一個if語句,在解釋器中輸入如下命令:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


迎接你的是神秘的提示符...;這表示解釋器在等待你輸入代碼塊的內容,按下Tab鍵,輸入第二行:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


再次按下回車,你的光標回到了控制檯的最左邊。要想再輸入一個代碼塊語句,只需要再按Tab。如果你輸入完了,按下回車告訴解釋器你的代碼塊已經完成。

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


看一下下面的例子:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


第一條語句判斷x是不是等於10,如果是的話,打印x equals 10!。另外一個if語句判斷x是否等於y,如果是的話,打印"x equals y!".
for循環
for循環再Python中遍歷列表中的項目並且把當前項目賦值給變量。一個列表幾乎可以是任何東西的集合!
輸入下面的代碼,並且像下面這樣縮進:
for x in range(10):
print x


在這個例子中,range(10) 生成了數字0到9的一個列表。for循環一次把範圍內的數字賦值給x。就像if語句一樣,for循環執行它下面縮進中的每個語句。在上面的例子中,縮進的代碼塊裡面只包含了一個單獨的語句。
因為print被調用了10次,對於列表中的每個項目調用一次,這個程序會打印0到9的數字。
函數
函數是可以重用的代碼塊,用來完成某個特定的代碼塊。比如說,你可以寫一個函數用來把兩個數相加,或是打印一個字符串。你可以像下面例子展示的一樣定義並調用函數。

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


在運行前,你可以猜猜看這個程序的輸出是什麼嗎?答案見下文:
它會打印出“Hi”三次,因為for循環會調用這個hello函數三次。
縮進的代碼塊定義了你調用函數時要執行的語句。因為print "Hi" 是這個函數里唯一縮進的語句,所以當調用函數時也是唯一被執行的語句,而不是下面的幾行。
你可以通過輸入結尾帶有一對括號的函數名來調用函數,像之前展示的那樣,hello() 調用了你上面調用的函數。函數有點類似有圍牆的花園:它們不能看到它們那一畝三分地意外的世界。這個被稱作變量作用域。如果你想要讓一個函數和外界的數據協同工作,你需要把這些數據傳遞給函數。
使用參數(arguments)可以達到這一目的——不不不,函數之間是不會相互爭吵(argue)的!
參數是一個你傳遞給函數的一個變量;然後函數就可以在內部使用這個參數的值了。
你可以像下面這樣聲明一個帶參函數:
def add(a, b):
print a + b
上面的函數定義了兩個參數,a和b,放在括號裡面,用逗號相互隔開。當你調用這個函數的時候,解釋器會吧a和b的值設置為你傳入變量的值。


看一下下面這個例子:
def add(a, b):
print a + b
add(1,2) # prints 3!
在上面的例子中,add(1,2) 這條語句把a和b分別設置為1和2。然後函數打印了你傳入的兩個數的和。上面的例子打印了計算結果——但是如果你想要用這個計算結果做些事情呢?如果你想要把這個函數的結果加上別的一個值呢?
為了做到這一點,你需要給你的函數加一個return 語句。
考慮如下代碼:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


在上面的例子中,你的函數像之前一樣把兩數相加,但是return(返回)語句把兩數和傳回了函數調用語句。
這意味著上面的print 語句得到了add(2,2)返回的值然後把它加1,最後會給你的結果是5。
While 循環
while循環和for循環類似。for循環一直進行,直到到達列表的末尾,但是while循環會不定的循環,直到給定條件的值等於False。一個while循環的典型結構是下面這樣:
while (conditional):
run_statement
通常,條件變量會在循環運行過程中更新。在解釋器中輸入下面的程序,來看看這一過程:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


這個程序的行為類似於上面的for循環,但是使用了while循環。這是上面程序所做的事情:
1. 給x賦值0
2. 檢查是否滿足 x < 10
3. 如果x < 10 的值是True, 執行下面的代碼塊. 如果是 False 退出循環
4. 打印x
5. 把 x 值加1
使用while循環需要注意一件事,就是不要創建死循環。
在解釋器中輸入下面的程序,來看看死循環是什麼樣的:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


哇啊——終端瘋了吧?按Ctrl+C來終止程序吧。
剛才發生了什麼?如果你仔細看,你會發現while循環的條件,True永遠無法變成False,所以這段代碼會以CPU能夠執行的最快的速度打印數字。
這個故事告訴我們:當寫while循環的時候要時刻保持小心,因為你代碼裡面的無限循環,對於真實世界來講,不太會是什麼好事!


使用True作為while循環的條件是有可能的,尤其是當你不知道要循環多少次的時候。但是你需要一些技巧來退出這個循環。
在解釋器中輸入下面的代碼:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


這樣就好多了!上面的代碼會打印0到10然後退出。這裡用到的技巧是break語句,它會直接跳出循環。不論出於何種原因,如果你想要在for循環中提前跳出,也可以使用這個技巧。


捕獲用戶輸入
Python中一件很酷的事情是可以非常簡便的以文本的方式獲取輸入用戶輸入。輸入是指任何從外部提供給程序的數據,比如文本或者是其他會影響程序行為的指令。
在你的解釋器中輸入下面代碼:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


上面的代碼首先會讓你進行輸入;一旦用戶輸入了問題的答案,程序會把它賦值給name變量。這一過程完成後,程序會連接字符串“Hello,”和變量name 的內容。


raw_input()函數是Python內建函數;它完成打印從控制檯輸入字符串的工作,捕獲用戶輸入的文本,然後把它們作為函數值返回。
利用上面捕獲輸入的技術,你可以創建簡單的計算器。在你的解釋器中輸入下面的代碼:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


首先,你捕獲了兩個用戶輸入的值然後把它們分別賦值給a和b。然後你把他們轉換成了整型並相加。


為什麼要有轉換這一步呢?僅僅是因為解釋器中所有的輸入都是以字符串形式進行的,而你是希望吧兩個整數的值相加。
如果你不轉換這些字符串為整數,你覺得會怎樣呢?沒錯,程序會連接你輸入的字符串,這並不是你想要的!
導入
在我們深入研究導入之前,介紹一下Python的模塊是必要的。一個模塊,是一組Python函數的集合,你希望在不同的程序中重用它們。導入一個模塊等價於從一個模塊中把所有的代碼取出來放到你自己的程序裡面所以你可以在任何時候去使用他們,但是又不需要去剪切和複製,哪怕是一行代碼!
在Python社區中,存在著大量的模塊,但是目前來講,你僅會接觸到隨機數模塊(random module)。
要導入模塊,在解釋器中輸入下面的代碼:
import random
一旦導入了模塊,你就可以像下面這樣使用它了:
print random.randint(0, 100)
這將會打印0到100間隨機的整數;很直觀的東西。到目前為止你已經學到很多知識了,足以把他們揉在一個小程序裡來練習一下你目前學到的知識了!
猜謎遊戲

這將是你辛苦學習Python編程得到的回報。你將創造屬於你自己的猜謎遊戲!
首先,你需要一個與在解釋器中一句一句直接執行程序相比更好的方式。
為了做到這一點,你需要創建Python文件。
Mac
在Mac系統下創建Python文件,在終端中輸入下面的命令:
$ touch guess.py
$ open -t guess.py
這將會使用touch 命令創建一個空的guess.py 文件,然後通過open -t命令,使用默認的文本編輯器打開它,
一旦你的Python文件中有了一些內容後,你就可以在終端中輸入python guess.py 來執行它。
Windows
在Windows系統下,點擊IDLE中的文件按鈕(File) 找到新建文件(New File)。你會發現一個文本編輯器映入眼簾,你可以在裡面輸入你的新程序。

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


再次點擊文件按鈕,選擇保存。把文件名命名為guess.py 然後把它保存在你想要保存的地方。
運行你的程序,在菜單中選擇RunRun,就像這樣:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


遊戲時間!
猜謎遊戲將會生成一個隨機數,然後在一個循環中,反覆詢問遊戲者他們的猜測結果。如果用戶猜中,則結束循環;否則程序會提醒用戶他們的猜測是過高還是過低並繼續詢問結果直到猜中。


import random
number = random.randint(0, 100)
上面這段程序會導入隨機數模塊,然後生成一個0到100之間的隨機數並把它儲存在變量number中。
接下來,你需要詢問遊戲者他們的答案。把這些代碼加到程序的後面:
guess = raw_input("Guess the Number: ")
這段代碼,和你猜的一樣,讓用戶輸入它們的答案並且把它保存在guess變量中。記住,現在這個變量是一個字符串,你需要把它轉換為整型。
在程序中添加下面的代碼,就加在上面的代碼後面:
guess_int = int(guess)
這個代碼把用戶輸入的字符串轉換為整型然後賦值給guess_int變量。
下面你需要比較用戶猜測的值和隨機數的大小。
在程序結尾添加下面的代碼:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


點擊菜單按鈕的RunRun Module或是在終端中輸入python guess.py 來運行程序;當程序提示你的時候,輸入數字。發生了什麼?程序在你輸入數字後會把結果顯示到屏幕上然後就停止了。哎呀!
你想讓程序循環的詢問你結果直到你猜中。你需要用一個running變量來添加這個功能。
running = True
running會被用在while循環中來控制你程序的循環。當用戶輸入正確的答案,程序會把running變量賦值為False然後while就會停止。
在你讓用戶輸入結果的前面添加下面這段代碼:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


下面,縮進剩下的代碼到同一層,這樣while循環才能認出它們是循環中的代碼塊。
最後,你需要添加用戶獲勝時,把running賦值為False的語句:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


確保if下面的兩行代碼被縮進兩層。
運行你的程序,現在再試一下。你需要多少回才能猜中正確答案?


這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


你最終的程序看上去是這個樣子的:

這個Python入門教程,國內12歲小孩都能做,是小白的入門不二之選


恭喜你——你已經寫出了你的第一個Python程序。別不是那麼難,對吧?
從這裡,到何方?
現在你已經完成了Python新手教程,我打賭你一定渴望一次挑戰。嘗試在你的程序中添加如下功能:
猜測次數統計
更大的隨機數產生範圍
一個電腦操控的遊戲對手

Python學習乾貨獲取方式:轉發+私信【學習】



分享到:


相關文章: