Python+Django+SAE系列教程1-----Python環境和基本語法

hemeng發表於2014-03-10

    由於本系列內容是基於SAE的,目前SAE支援的Python版本是2.7.3,所以我們先安裝這個版本的Python,下載地址:http://www.skycn.com/soft/appid/10554.html

    下載完成後雙擊“python_2.7.3.msi”進入安裝介面,路徑我們選擇“C:\Python27”,然後一路“下一步”就OK了。

    安裝完成後,下面就是要配置路徑了(這個好像在高版本的Pyhon安裝過程中已經配置了),我們在本機的環境變數中加入Python的安裝路徑就OK了(即再Path中加入“C:\Python27”)。

下面我們測試一下Python是否安裝成功:在開始選單中找到“Python 2.7-〉IDLE (Python GUI)”,點選後你會看到一個提示符,這個提示符就使Python的直譯器了。我們在“〉〉〉”後面輸入“print 'hello'”,回車,如果你看到hello,那麼就說明你的Python環境配置成功了!此處需要注意的是,我在開始學習的時候,看得是著名的《簡明 Python 教程》,安裝的是從官網(http://www.python.org/)上下載的最新本Python3.3,我輸入“print 'hello'”卻總是抱錯,查了資料才知道,3.3的版本語法換了,因該為“print('hello')”,暈死了。

配置好環境,我們就可以開始學習Python了!我強烈推薦大家看《簡明Python 教程》http://sebug.net/paper/python/index.html,寫得真的是太好了。如果你有一些編成基礎,花個週六週日可以看完了。

下面,就來談談我的學習心得吧:

 

第一章:介紹Python,我印象最深的就是:“Python是個簡單且聰明的語言”、“它執行時不需要事先編譯,是個指令碼語言”、“甚至不用宣告變數”。

 

第二章:安裝Python,上面已經說了安裝環境,這裡不再說了。

 

第三章:最初的步驟,其實我們在上面已經認識了Python的直譯器了,至於挑選編輯器的事情,我倒是推薦大家開始的時候就使用Python自帶的IDLE就可以了。不過以後再我們正是開發的時候,還是推薦你選擇以後拿手的工具吧“欲善其事,必先利其器”嗎,這裡是一個對比(網上找的),選刀選槍就看你了:


順便說一下,我用的是“PythonWin”,開始的時候先入為主了,不過我以後享用ulipad試試。

開始階段,我們學習語法,最好就是用自帶的IDLE,下面就用IDLE開發第一個HelloWorld。

執行IDLE,在File選單中點選“NewWindow”,會彈出一個空白的編輯視窗,然後打上如下程式碼:

#!/usr/bin/python
# Filename : helloworld.py
print 'Hello World'

點選這個視窗的“Run-〉Run Module”選單,你會在PythonShell視窗就會看到“Hello World”的結果了。同時我們還注意到了在Python裡面是用“#”註釋的;是區分大小寫的;變數不用宣告的;語句結束後可以沒有分號(其實有分號也不會錯);這裡面還有一點非常重要,那就是“確保在每一行的開始字元前沒有空格或者製表符”,因為Python是用空格來區分程式碼段的,因為在Python 中沒有C#裡面的大括號“{}”。

這一章還介紹了可執行的Python,這裡我們不用管了,因為我們是準備用Python開發Web相關或者SAE之類的東西,不用試驗了。


第四章:在Python中有4種型別的數——整數、長整數、浮點數和複數。我們估計只能用到前三種,其實在使用的過程中也沒有什麼太多的體會;然後是字串,有單引號(')、雙引號(")、三引號('''或"""),前面兩個在其他語言也都見過,不用說了。我就覺得三引號('''或""")比較牛B,只要用三引號括起來後,裡面隨便回車,隨便引號都可以了,這點比C++和C#強。

print ('''This is a multi-line string. This is the first line.
This is the second line.
"What's your name?," I asked.
He said "Bond, James Bond."
''')

轉義符依舊用“\”來表示;自然字串用字首“r”,如同C#中的“@”,例如:r"Newlines are indicated by \n";Unicode字串用“u”

變數名遵循其他語言的格式,只是這裡的變數不用宣告型別了,有點像以前的ASP或者JavaScript,能看懂一下程式碼,就算這章過關了:

# Filename : var.py
i = 5
print i
i = i + 1
print i

s = '''This is a multi-line string.
This is the second line.'''
print s

本章後面說的物理行和行縮排前面已經提到了,不用多說了。


第五章:運算子沒有什麼特別的,加鹼乘除,或與非,大小等於,什麼的。(http://sebug.net/paper/python/ch05s02.html),至於運算子優先順序,表示式和其他語言也一樣,只要能看懂這段程式碼,就可以Pass了:

#!/usr/bin/python
# Filename: expression.py

length = 5
breadth = 2
area = length * breadth
print 'Area is', area
print 'Perimeter is', 2 * (length + breadth)

但是需要注意的是“print 'Area is', area”,這裡面不是用+或者&把字串和變數組合起來了,而是用“,”,開始確實有些不習慣,後來也習慣了,因為這樣更像是在寫英語(自然語言)。在教程中提到了:

注意Python如何列印“漂亮的”輸出。儘管我們沒有在'Area is'和變數area之間指定空格,Python自動在那裡放了一個空格,這樣我們就可以得到一個清晰漂亮的輸出,而程式也變得更加易讀(因為我們不需要擔心輸出之間的空格問題)。這是Python如何使程式設計師的生活變得更加輕鬆的一個例子。

但問題是,如果我們確實不需要這個空格的時候可就麻煩了,這一點也不是優點。



第六章:if、while、for、break、continue語句的用法。

先說if,如果能看懂這段程式碼,那麼也可以Pass繼續了。

#!/usr/bin/python
# Filename: if.py 

number = 23
guess = int(raw_input('Enter an integer : ')) # raw_input為內建函式,這個字串被列印在螢幕上,然後等待使用者的輸入

if guess == number:#條件的後面需要跟上一個“:”
    print 'Congratulations, you guessed it.' # New block starts here
    print "(but you do not win any prizes!)" # New block ends here
elif guess < number:#這裡是else if的簡寫elif
    print 'No, it is a little higher than that' # Another block
    # You can do whatever you want in a block ...
else:
    print 'No, it is a little lower than that' 
    # you must have guess > number to reach here
print 'Done'
# This last statement is always executed, after the if statement is executed
#這裡注意之前提到的用縮排(空格區分的程式碼段)
再說while,如果能看懂這段程式碼,那麼也可以Pass繼續了。

#!/usr/bin/python
# Filename: while.py

number = 23
running = True

while running:#while的條件後面也要跟上“:”
    guess = int(raw_input('Enter an integer : '))

    if guess == number:
        print 'Congratulations, you guessed it.' 
        running = False # this causes the while loop to stop
    elif guess < number:
        print 'No, it is a little higher than that' 
    else:
        print 'No, it is a little lower than that' 
else:#while也有else?這個真的不知道是什麼用意
    print 'The while loop is over.' 
    # Do anything else you want to do here

print 'Done'

再說for,如果能看懂這段程式碼,那麼也可以Pass繼續了。

#!/usr/bin/python
# Filename: for.py

for i in range(1, 5):#for後面依然有一個“:”;range(1,5)等價於for i in [1, 2, 3, 4]
    print i
else:# else部分是可選的。如果包含else,它總是在for迴圈結束後執行一次,除非遇到break語句。
    print 'The for loop is over'
再說break,如果能看懂這段程式碼,那麼也可以Pass繼續了。
#!/usr/bin/python
# Filename: break.py

while True:
    s = raw_input('Enter something : ')
    if s == 'quit':
        break
    print 'Length of the string is', len(s)
print 'Done'

再說continue,如果能看懂這段程式碼,那麼也可以Pass繼續了。

#!/usr/bin/python
# Filename: continue.py

while True:
    s = raw_input('Enter something : ')
    if s == 'quit':
        break
    if len(s) < 3:
        continue
    print 'Input is of sufficient length'
    # Do other kinds of processing here...
待續.....






相關文章