《天龍八部》第四十二回,段譽和慕容復在少室山上比武。慕容復又是使劍,又是用刀,又是拿出判官筆,連續更換幾種兵器。段譽呢?始終以一雙空手發射劍氣,用無意中學會的段家絕學「六脈神劍」對抗。原文說:
這商陽劍的劍勢不及少商劍宏大,輕靈迅速卻遠有過之, 他食指連動,一劍又一劍的刺出,快速無倫。使劍全仗手腕靈活,但出劍收劍,不論如何迅速,總是有數尺的距離,他以食指運那無形劍氣,卻不過是手指在數寸範圍內轉動,一點一戳,何等方便?何況慕容復被他逼在丈許之外,全無還手餘地。段譽如果和他一招一式的拆解,使不上第二招便給慕容復取了性命,現下只攻不守,任由他運使從天龍寺中學來的商陽劍法,自是占盡了便宜。
段譽沒有正經學過武功,刀劍和拳腳一竅不通,如果一招一式與慕容復對打,很快會死在慕容復手下;如果只攻不守, 自顧自地將六脈神劍練一遍,慕容復反倒會被他的無形劍氣逼得手忙腳亂。段譽明不明白其中道理?當然明白,當時他腦子裡必定形成這種邏輯:
如果見招拆招,那麼結局是輸。
如果不見招拆招,那麼結局是贏。
以上邏輯可用Python 語句表達:
if 見招拆招:
結局 = 輸
else:
結局 = 贏
if... else... 句式叫做「判斷語句」,又叫「選擇語句」, 是所有高階程式設計語言都有的句式,也是程式設計時經常用到的句式。
當然,由於使用中文變數「結局」和中文運算式「見招拆招」,上述代碼無法運行,只能用於描述程式設計思路或程式結構。這類描述性代碼在設計程式方案時常常用到,被稱為「虛擬碼」,又稱「偽代碼」。真正動手程式設計時,我們將虛擬碼轉化成符合Python 語法規範的代碼:
if defense == True:
result = 0
else:
result = 1
defense 是「防守」的英文形式,意思接近於「見招拆招」。result 是「結果」的英文形式,意思接近於「結局」。這四行代碼裡創建defense 和result 兩個變數,且規定defense 是布林型變數,有True 和False 兩個值;result 是整型變數, 有0 和1 兩個值。
defense 的值為True,意思是段譽選擇見招拆招;defense 的值為False,表明段譽回避見招拆招;result 的值為0,表明段譽敗給慕容復;result 的值為1,意思是段譽贏了慕容復。
代碼裡有等號=,還有雙等號==,這兩種等號擁有不一樣的功能。在Python 語言中,= 叫做「賦值符號」,用來給變數賦值;== 叫做「比較符號」,用來比較左右兩邊的變數是否相等。if defense == True,就是讓直譯器或編譯器做比較,比較布林變數defense 是不是等於True。如果等於True, 則result = 0,將整型變數result 賦值為0。否則執行else 下面的語句result = 1,將整型變數result 賦值為1。