所謂條件語句,顧名思義,就是依據(jù)某個條件,滿足這個條件后執(zhí)行下面的內(nèi)容。
if,其含義就是:conj. (表條件)如果。if 發(fā)起的就是一個條件,它是構(gòu)成條件語句的關(guān)鍵詞。
>>> a = 8
>>> if a==8:
... print a
...
8
在交互模式下,簡單書寫一下if發(fā)起的條件語句。特別說明,我上面這樣寫,只是簡單演示一下。如果你要寫大段的代碼,千萬不要在交互模式下寫。
if a==8:,這句話里面如果條件 a==8 返回的是 True,那么就執(zhí)行下面的語句。特別注意,冒號是必須的。下面一行語句 print a 要有四個空格的縮進。這是 Python 的特點,稱之為語句塊。
唯恐說的不嚴謹,我還是引用維基百科中的敘述:
Python 開發(fā)者有意讓遠反了縮排規(guī)則的程序不能通過編譯,以此來強迫程序員養(yǎng)成良好的編程習(xí)慣。並且Python 語言利用縮排表示語句塊的開始和結(jié)束(Off-side 規(guī)則),而非使用花括號或者某種關(guān)鍵字。增加縮表示語句塊的開始,而減少縮排則表示語句塊的結(jié)束。縮排成為了語法的一部分。例如 if 語句.
根劇 PEP 的規(guī)定,必須使用 4 個空格來表示每級縮排。使用 Tab 字符和其它數(shù)目的空格雖然都可以編譯通過,但不符合編碼規(guī)范。支持 Tab 字符和其它數(shù)目的空格僅僅是為兼容很舊的 Python 程式和某些有問題的編輯程式。
從上面的這段話中,提煉出幾個關(guān)鍵點:
在進行條件判斷的時候,只有 if,往往是不夠的。比如下圖所示的流程
http://wiki.jikexueyuan.com/project/start-learning-python/images/12201.png" alt="" />
這張圖反應(yīng)的是這樣一個問題:
輸入一個數(shù)字,并輸出輸入的結(jié)果,如果這個數(shù)字大于 10,那么同時輸出大于 10,如果小于 10,同時輸出提示小于 10,如果等于 10,就輸出表揚的一句話。
從圖中就已經(jīng)顯示出來了,僅僅用 if 來判斷,是不足的,還需要其它分支。這就需要引入別的條件判斷了。所以,有了 if...elif...else 語句。
基本樣式結(jié)構(gòu):
if 條件 1:
執(zhí)行的內(nèi)容 1
elif 條件 2:
執(zhí)行的內(nèi)容 2
elif 條件 3:
執(zhí)行的內(nèi)容 3
else:
執(zhí)行的內(nèi)容 4
elif 用于多個條件時使用,可以沒有。另外,也可以只有 if,而沒有 else。
下面我們就不在交互模式中寫代碼了。打開文本編輯界面,你的編輯器也能提供這個功能,如果找不到,請回到《寫一個簡單的程序》查看。
代碼實例如下:
#! /usr/bin/env python
#coding:utf-8
print "請輸入任意一個整數(shù)數(shù)字:"
number = int(raw_input()) #通過 raw_input()輸入的數(shù)字是字符串
#用 int()將該字符串轉(zhuǎn)化為整數(shù)
if number == 10:
print "您輸入的數(shù)字是:%d"%number
print "You are SMART."
elif number > 10:
print "您輸入的數(shù)字是:%d"%number
print "This number is more than 10."
elif number < 10:
print "您輸入的數(shù)字是:%d"%number
print "This number is less than 10."
else:
print "Are you a human?"
特別提醒看官注意,前面我們已經(jīng)用過 raw_input() 函數(shù)了,這個是獲得用戶在界面上輸入的信息,而通過它得到的是字符串類型的數(shù)據(jù)。
上述程序,依據(jù)條件進行判斷,不同條件下做不同的事情了。需要提醒的是在條件中:number == 10,為了閱讀方便,在 number 和 == 之間有一個空格最好了,同理,后面也有一個。這里的 10,是 int 類型,number 也是 int 類型.
把這段程序保存成一個擴展名是.py 的文件,比如保存為 num.py,進入到存儲這個文件的目錄,運行 Python num.py,就能看到程序執(zhí)行結(jié)果了。下面是我執(zhí)行的結(jié)果,供參考。
$ Python num.py
請輸入任意一個整數(shù)數(shù)字:
12
您輸入的數(shù)字是:12
This number is more than 10.
$ Python num.py
請輸入任意一個整數(shù)數(shù)字:
10
您輸入的數(shù)字是:10
You are SMART.
$ Python num.py
請輸入任意一個整數(shù)數(shù)字:
9
您輸入的數(shù)字是:9
This number is less than 10.
不知道各位是否注意到,上面的那段代碼,開始有一行:
#! /usr/bin/env python
這是什么意思呢?
這句話以 # 開頭,表示本來不在程序中運行。這句話的用途是告訴機器尋找到該設(shè)備上的 Python 解釋器,操作系統(tǒng)使用它找到的解釋器來運行文件中的程序代碼。有的程序里寫的是 /usr/bin Python,表示 Python 解釋器在 /usr/bin 里面。但是,如果寫成 /usr/bin/env,則表示要通過系統(tǒng)搜索路徑尋找 Python 解釋器。不同系統(tǒng),可能解釋器的位置不同,所以這種方式能夠讓代碼更將擁有可移植性。對了,以上是對 Unix 系列操作系統(tǒng)而言。對與 windows 系統(tǒng),這句話就當(dāng)不存在。
在“條件”中,就是上節(jié)提到的各種條件運算表達式,如果是 True,就執(zhí)行該條件下的語句。
三元操作,是條件語句中比較簡練的一種賦值方式,它的模樣是這樣的:
>>> name = "qiwsir" if "laoqi" else "github"
>>> name
'qiwsir'
>>> name = 'qiwsir' if "" else "python"
>>> name
'Python'
>>> name = "qiwsir" if "github" else ""
>>> name
'qiwsir'
總結(jié)一下:A = Y if X else Z
什么意思,結(jié)合前面的例子,可以看出:
如此例
>>> x = 2
>>> y = 8
>>> a = "python" if x>y else "qiwsir"
>>> a
'qiwsir'
>>> b = "python" if x<y else "qiwsir"
>>> b
'python'
總目錄 | 上節(jié):語句(1) | 下節(jié):語句(3)
如果你認為有必要打賞我,請通過支付寶:qiwsir@126.com,不勝感激。