#!/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
(源文件:code/if.py)
輸出
$ 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ù)只是重用的程序段。我們將在下一章學習更多關于函數(shù)的知識。
我們?yōu)閮冉ǖ?raw_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/C++背景的用戶來說是尤為簡單的)。它們在開始時會引起你的注意,但是以后你會對它們感到熟悉、“自然”。
給C/C++程序員的注釋
在 Python 中沒有 switch 語句。你可以使用 if..elif..else 語句來完成同樣的工作(在某些場合,使用字典會更加快捷。)