介紹
介紹
Python這種指令碼語言福哥已經給大家介紹過了,現在童鞋們應該已經會安裝python的開發環境了,接下來我們需要針對python語言進行一個系統的學習。
首先學習一門程式語言最先要學習的是語言的語法,學習程式語言的語法包括常量與變數、輸入與輸出、條件語句(if)、迴圈語句(for,while)、交換語句(switch,case)、函式(function)、物件(class),這個和之前福哥帶著童鞋們接觸c/c++、java、php三種主流程式語言的基本語法的順序是一樣的。不過學習過c/c++、java、php語言的老鳥會有一種感覺,就是python的語法真BT啊~~
那麼現在就開始吧!童鞋們準備好了嗎?
基本語法一行一個命令,不需要以“;”結尾邏輯語句使用4個空格縮排,使用邏輯語句的時候,例如:if、for、try等等,需要將子邏輯程式碼每一行都使用4個空格縮排一下行註釋使用“#”,如果要為程式碼寫註釋資訊,需要使用“#”符號塊註釋是不支援的,python並不支援其他語言都支援的“/* ... */”塊註釋語法常量與變數變數定義
python屬於弱型別的語言,所以python的變數是沒有型別的
whoAmI = "同福"howOldAmI = 35
型別轉換
雖然python是弱型別,但是字串和數字也是要區別對待的(這一點php就做的比較徹底,各種型別的變數可以隨便混用)
strInt = "35"realInt = int(strInt)realInt = 35strInt = str(realInt)
null
在python裡是沒有null的,取而代之是None,當函式處理異常時候一般情況下得到的都是None。判斷None需要使用is關鍵字而不是“==”運算子
輸入與輸出輸入
python2輸入不能使用input()了,需要引入sys軟體包,使用sys.stdin物件
import sysprint ("你叫什麼?")yourName = sys.stdin.readline().strip()print ("你多大了?")howOldAreYou = sys.stdin.readline().strip()print ("你是" + yourName + ",你今年" + howOldAreYou + "歲")
輸出
python輸出語句使用 print 命令
whoAmI = "同福"howOldAmI = 35 #sdfprint ("我叫" + whoAmI + ",我今年" + str(howOldAmI) + "歲")
條件語句(if)
python的條件語句還是使用if,這時候就需要“縮排”了
python的else if換成了elif,這個和linux下的shell語言是一樣的
whoAmI = "同福"howOldAmI = 35if whoAmI is not None and whoAmI != "": print whoAmIif howOldAmI is not None and howOldAmI == 35: print howOldAmI if howOldAmI == 12: print "好年輕啊!"elif howOldAmI == 25: print "好帥啊!"else: print "你到底多大啊?"
迴圈語句(for,while)按次迴圈
python的按次迴圈很奇怪,需要透過range實現
howOldAmI = 0for i in range(0, 35): howOldAmI = howOldAmI + 1print howOldAmI
條件迴圈
python的條件迴圈基本和其他語言相似
howOldAmI = 0i = 0while i < 35: howOldAmI = howOldAmI + 1 i = i + 1print howOldAmI
交換語句(switch,case)
python沒有switch語法,只能使用if、elif、else實現了
函式(function)函式定義使用def關鍵字
無返回值
無返回值的函式定義
def showInfo(): print "同福" print 35showInfo()
有返回值
有返回值的函式定義,返回值使用return關鍵字返回出來
def getName(): return "同福"def getAge(): return 35;print ("我叫" + getName() + ",我今年" + str(getAge()) + "歲")
有引數
有引數的函式定義
def showInfo(name, age): print ("我叫" + name + ",我今年" + str(age) + "歲")showInfo("同福", 35)
物件(class)
python的物件定義語法逆天了簡直,咱們看一個例子先
class fuge: name = "同福" age = 35 def setName(self, name): self.name = name def setAge(self, age): self.age = age def showInfo(self, num): print ("[" + str(num) + "] 我叫" + self.name + ",我今年" + str(self.age) + "歲") def callShowInfo(self): self.showInfo(6)myFuge = fuge()myFuge2 = fuge();myFuge.showInfo(1)myFuge2.setName("福哥")myFuge2.setAge(36)myFuge.showInfo(2)myFuge2.showInfo(3)myFuge.callShowInfo()
大家可以和福哥一塊兒看看python的物件程式設計有多麼另類
物件宣告使用class(這還是比較正規的)屬性宣告沒有修飾符(這也還能接受)方法宣告使用def(把它想成function就好)每個方法必須有引數,且第一個引數為指向物件自身的指標(我去這是什麼鬼!?)方法內呼叫屬性使用物件指標(這個...好吧,真能糊弄啊~)方法內呼叫其他方法使用物件指標,且不能傳遞物件指標引數(福哥已經無語了!!)捕獲異常語句(try)很多時候我們所期望的情況和實際的情況是有差距的,這個時候會出現意想不到的情況,這種情況我們稱之為異常情況(exception),一般情況下,遇到這種情況程式會終止執行,這不是我們所希望的
為了解決這個問題,我們可以使用try語句去嘗試執行我們的程式程式碼,如果出現了異常我們可以主動設計程式的處理方案,避免程式終止執行
try: print (fuge + ",是你嗎?")except Exception as e: print efinally: print "哦,我知道了"
解釋一下
try:這部分程式碼是主邏輯,python會嘗試執行這段程式碼except:如果主邏輯執行出現異常情況會將異常資訊捕獲起來放入變數e,並執行使用者的處理方案finally(可選):無論主邏輯執行是否出現異常情況,這段程式碼都會被執行,這段是可選的引用自定義包我們程式設計python程式時候,在將公共處理封裝到函數里面或者物件裡面,這樣業務邏輯程式碼會看起來非常清爽。如果一些函式或者物件是屬於公共的,多處都需要使用這些函式或者物件,那麼應該怎麼辦呢?
我們可以將一些函式或者物件放到一個py檔案裡,在需要呼叫這些函式或者物件的py檔案裡面引用它們
同級目錄
如果引入的自定義(package)的py檔案和呼叫(main)的py檔案在同一級目錄下,可以直接引入這個自定義(package)的py檔案
結構
package.pymain.py
main.py
from package import *
不同級目錄
如果引入的自定義(package)的py檔案在呼叫(main)的py檔案不在同一級目錄下,需要在自定義(package)的py檔案所在目錄建立空檔案__init__.py檔案
結構
lib/__init__.pylib/package.pymain.py
main.py
from lib.package import *
總結
python的語法很奇怪,與常規的程式語言的語法格式區別很大,但是就沒有學會程式設計的人首次接觸python的時候,他們的反饋是:感覺很容易理解。不得不說,這一點真的是始料不及的,這個python語言的語法確實值得我們這些古董級的程式設計師反思一下。
福哥嘗試著用最容易理解的方式給童鞋們講解各種程式語言的語法和開發技巧,希望童鞋們可以認真學習。如果遇到了問題,可以講真實的感受反饋給福哥,福哥會想辦法以更加好理解的方式講解給大家~~
https://m.tongfu.net/home/35/blog/512787.html