Python中的條件判斷語(yǔ)句基礎(chǔ)學(xué)習(xí)教程
if語(yǔ)句用來(lái)檢驗(yàn)一個(gè)條件, 如果 條件為真,我們運(yùn)行一塊語(yǔ)句(稱為 if-塊 ), 否則 我們處理另外一塊語(yǔ)句(稱為 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è)字符串被打印在屏幕上,然后等待用戶的輸入。一旦我們輸入一些東西,然后按回車鍵之后,函數(shù)返回輸入。對(duì)于raw_input函數(shù)來(lái)說(shuō)是一個(gè)字符串。我們通過(guò)int把這個(gè)字符串轉(zhuǎn)換為整數(shù),并把它存儲(chǔ)在變量guess中。事實(shí)上,int是一個(gè)類,不過(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ǔ)句,等等——這被稱為嵌套的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ò)它得到的是字符串類型的數(shù)據(jù)。
上述程序,依據(jù)條件進(jìn)行判斷,不同條件下做不同的事情了。需要提醒的是在條件中:number == 10,為了閱讀方便,在 number 和 == 之間有一個(gè)空格最好了,同理,后面也有一個(gè)。這里的 10,是 int 類型,number 也是 int 類型.
把這段程序保存成一個(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)行文件中的程序代碼。有的程序里寫的是 /usr/bin Python,表示 Python 解釋器在 /usr/bin 里面。但是,如果寫成 /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<y else "qiwsir" >>> b 'python'
相關(guān)文章
Python+MySQL隨機(jī)試卷及答案生成程序的示例代碼
這篇文章主要介紹了Python+MySQL隨機(jī)試卷及答案生成程序的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02使用Dajngo 通過(guò)代碼添加xadmin用戶和權(quán)限(組)
這篇文章主要介紹了使用Dajngo 通過(guò)代碼添加xadmin用戶和權(quán)限(組),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07基于python進(jìn)行抽樣分布描述及實(shí)踐詳解
這篇文章主要介紹了基于python進(jìn)行抽樣分布描述及實(shí)踐詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09Python中棧、隊(duì)列與優(yōu)先級(jí)隊(duì)列的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Python中棧、隊(duì)列與優(yōu)先級(jí)隊(duì)列的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06Python?數(shù)據(jù)篩選功能實(shí)現(xiàn)
這篇文章主要介紹了Python?數(shù)據(jù)篩選,無(wú)論是在數(shù)據(jù)分析還是數(shù)據(jù)挖掘的時(shí)候,數(shù)據(jù)篩選總會(huì)涉及到,這里我總結(jié)了一下python中列表,字典,數(shù)據(jù)框中一些常用的數(shù)據(jù)篩選的方法,需要的朋友可以參考下2023-04-04基于Python __dict__與dir()的區(qū)別詳解
下面小編就為大家?guī)?lái)一篇基于Python __dict__與dir()的區(qū)別詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10python封裝json格式字符串并處理單雙引號(hào)問(wèn)題
大家好,本篇文章主要講的是python封裝json格式字符串并處理單雙引號(hào)問(wèn)題,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02