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

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