if語(yǔ)句用來(lái)檢驗(yàn)一個(gè)條件, 如果 條件為真,我們運(yùn)行一塊語(yǔ)句(稱(chēng)為 if-塊 ), 否則 我們處理另外一塊語(yǔ)句(稱(chēng)為 else-塊 )。 else 從句是可選的。
使用if語(yǔ)句:
#!/usr/bin/python # Filename: if.py number = 23 guess = int(raw_input('Enter an integer : ')) 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: 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
輸出:
$ python if.py Enter an integer : 50 No, it is a little lower than that Done $ python if.py Enter an integer : 22 No, it is a little higher than that Done $ python if.py Enter an integer : 23 Congratulations, you guessed it. (but you do not win any prizes!) Done
在這個(gè)程序中,我們從用戶處得到猜測(cè)的數(shù),然后檢驗(yàn)這個(gè)數(shù)是否是我們手中的那個(gè)。我們把變量number設(shè)置為我們想要的任何整數(shù),在這個(gè)例子中是23。然后,我們使用raw_input()函數(shù)取得用戶猜測(cè)的數(shù)字。函數(shù)只是重用的程序段。
我們?yōu)閮?nèi)建的raw_input函數(shù)提供一個(gè)字符串,這個(gè)字符串被打印在屏幕上,然后等待用戶的輸入。一旦我們輸入一些東西,然后按回車(chē)鍵之后,函數(shù)返回輸入。對(duì)于raw_input函數(shù)來(lái)說(shuō)是一個(gè)字符串。我們通過(guò)int把這個(gè)字符串轉(zhuǎn)換為整數(shù),并把它存儲(chǔ)在變量guess中。事實(shí)上,int是一個(gè)類(lèi),不過(guò)你想在對(duì)它所需了解的只是它把一個(gè)字符串轉(zhuǎn)換為一個(gè)整數(shù)(假設(shè)這個(gè)字符串含有一個(gè)有效的整數(shù)文本信息)。
接下來(lái),我們將用戶的猜測(cè)與我們選擇的數(shù)做比較。如果他們相等,我們打印一個(gè)成功的消息。注意我們使用了縮進(jìn)層次來(lái)告訴Python每個(gè)語(yǔ)句分別屬于哪一個(gè)塊。這就是為什么縮進(jìn)在Python如此重要的原因。我希望你能夠堅(jiān)持“每個(gè)縮進(jìn)層一個(gè)制表符”的規(guī)則。你是這樣的嗎?
注意if語(yǔ)句在結(jié)尾處包含一個(gè)冒號(hào)――我們通過(guò)它告訴Python下面跟著一個(gè)語(yǔ)句塊。
然后,我們檢驗(yàn)猜測(cè)是否小于我們的數(shù),如果是這樣的,我們告訴用戶它的猜測(cè)大了一點(diǎn)。我們?cè)谶@里使用的是elif從句,它事實(shí)上把兩個(gè)相關(guān)聯(lián)的if else-if else語(yǔ)句合并為一個(gè)if-elif-else語(yǔ)句。這使得程序更加簡(jiǎn)單,并且減少了所需的縮進(jìn)數(shù)量。
elif和else從句都必須在邏輯行結(jié)尾處有一個(gè)冒號(hào),下面跟著一個(gè)相應(yīng)的語(yǔ)句塊(當(dāng)然還包括正確的縮進(jìn))。
你也可以在一個(gè)if塊中使用另外一個(gè)if語(yǔ)句,等等――這被稱(chēng)為嵌套的if語(yǔ)句。
記住,elif和else部分是可選的。一個(gè)最簡(jiǎn)單的有效if語(yǔ)句是:
if True: print 'Yes, it is true'
在Python執(zhí)行完一個(gè)完整的if語(yǔ)句以及與它相關(guān)聯(lián)的elif和else從句之后,它移向if語(yǔ)句塊的下一個(gè)語(yǔ)句。在這個(gè)例子中,這個(gè)語(yǔ)句塊是主塊。程序從主塊開(kāi)始執(zhí)行,而下一個(gè)語(yǔ)句是print 'Done'語(yǔ)句。在這之后,Python看到程序的結(jié)尾,簡(jiǎn)單的結(jié)束運(yùn)行。
盡管這是一個(gè)非常簡(jiǎn)單的程序,但是我已經(jīng)在這個(gè)簡(jiǎn)單的程序中指出了許多你應(yīng)該注意的地方。所有這些都是十分直接了當(dāng)?shù)模▽?duì)于那些擁有C/C++背景的用戶來(lái)說(shuō)是尤為簡(jiǎn)單的)。它們?cè)陂_(kāi)始時(shí)會(huì)引起你的注意,但是以后你會(huì)對(duì)它們感到熟悉、“自然”。
下面我們?cè)賮?lái)看一個(gè)代碼實(shí)例:
#! /usr/bin/env python #coding:utf-8 print "請(qǐng)輸入任意一個(gè)整數(shù)數(shù)字:" number = int(raw_input()) #通過(guò) 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)用過(guò) raw_input() 函數(shù)了,這個(gè)是獲得用戶在界面上輸入的信息,而通過(guò)它得到的是字符串類(lèi)型的數(shù)據(jù)。
上述程序,依據(jù)條件進(jìn)行判斷,不同條件下做不同的事情了。需要提醒的是在條件中:number == 10,為了閱讀方便,在 number 和 == 之間有一個(gè)空格最好了,同理,后面也有一個(gè)。這里的 10,是 int 類(lèi)型,number 也是 int 類(lèi)型.
把這段程序保存成一個(gè)擴(kuò)展名是.py 的文件,比如保存為 num.py,進(jìn)入到存儲(chǔ)這個(gè)文件的目錄,運(yùn)行 Python num.py,就能看到程序執(zhí)行結(jié)果了。下面是我執(zhí)行的結(jié)果,供參考。
$ Python num.py
請(qǐng)輸入任意一個(gè)整數(shù)數(shù)字:
12
您輸入的數(shù)字是:12 This number is more than 10.
$ Python num.py
請(qǐng)輸入任意一個(gè)整數(shù)數(shù)字:
10
您輸入的數(shù)字是:10 You are SMART.
$ Python num.py
請(qǐng)輸入任意一個(gè)整數(shù)數(shù)字:
9
您輸入的數(shù)字是:9 This number is less than 10.
不知道各位是否注意到,上面的那段代碼,開(kāi)始有一行:
#! /usr/bin/env python
這是什么意思呢?
這句話以 # 開(kāi)頭,表示本來(lái)不在程序中運(yùn)行。這句話的用途是告訴機(jī)器尋找到該設(shè)備上的 Python 解釋器,操作系統(tǒng)使用它找到的解釋器來(lái)運(yùn)行文件中的程序代碼。有的程序里寫(xiě)的是 /usr/bin Python,表示 Python 解釋器在 /usr/bin 里面。但是,如果寫(xiě)成 /usr/bin/env,則表示要通過(guò)系統(tǒng)搜索路徑尋找 Python 解釋器。不同系統(tǒng),可能解釋器的位置不同,所以這種方式能夠讓代碼更將擁有可移植性。對(duì)了,以上是對(duì) Unix 系列操作系統(tǒng)而言。對(duì)與 windows 系統(tǒng),這句話就當(dāng)不存在。
在“條件”中,就是上節(jié)提到的各種條件運(yùn)算表達(dá)式,如果是 True,就執(zhí)行該條件下的語(yǔ)句。
三元操作符
三元操作,是條件語(yǔ)句中比較簡(jiǎn)練的一種賦值方式,它的模樣是這樣的:
>>> 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 為真,那么就執(zhí)行 A=Y
- 如果 X 為假,就執(zhí)行 A=Z
如此例
>>> x = 2 >>> y = 8 >>> a = "python" if x>y else "qiwsir" >>> a 'qiwsir' >>> b = "python" if x>> b 'python'
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
