段譽比劍:《誰說不能從武俠學程式》選摘(1)

2022-09-08 05:10

? 人氣

# 使用者輸入模組

[啟動LINE推播] 每日重大新聞通知

choice = input(‘ 請段公子在此輸入比劍策略:’) 

# 程式處理模組

if choice == ‘ 見招拆招’: 

defense = True 

else: 

defense = False 

if defense == True: 

result = 0 

else: 

result = 1 

# 結果輸出模組

if result == 0: 

print(‘ 你將在比劍中輸給慕容復’) 

else: 

print(‘ 你將在比劍中勝過慕容復’) 

完善後的程式有了代碼注釋,還多出一行choice = input (‘ 請段公子在此輸入比劍策略:’)。這行代碼使用input 函式, 創建字串變數choice(選擇),提示段譽輸入比劍策略,輸入的內容將賦值給choice。

再次運行,跳出一行藍色的文字:

請段公子在此輸入比劍策略:

假設段譽在冒號後面輸入「見招拆招」,程式會告訴他:

你將在比劍中輸給慕容復

反之,如果段譽輸入「我自己耍劍」,程式回饋的結果必是「你將在比劍中勝過慕容復」。也就是說,我們編寫的程式終於有了實際功能─ 能讓段譽科學決策,避免被慕容復取走小命。

加上注釋,加上input 函式,再加上為了提高代碼可讀性而故意留出的空行,現在程式已經多達十九行。能否精簡一下呢?其實可以,應該將程式處理模組的兩個判斷語句合二為一,使代碼精簡到十一行:

# 使用者輸入模組

choice = input(‘ 請段公子在此輸入比劍策略:’) 

# 程式處理模組

if choice == ‘ 見招拆招’: 

defense = True 

result = 0 

else: 

defense = False 

result = 1 

# 結果輸出模組

if result == 0: 

print(‘ 你將在比劍中輸給慕容復’) 

else: 

print(‘ 你將在比劍中勝過慕容復’) 

代碼精簡後,程式功能沒有丟失或變弱,程式設計思路卻顯得更加清晰易讀。所以,在確保「程式功能不變」和「代碼清晰易讀」的前提下,能精簡一定要精簡,能把代碼寫短就盡量不要寫長,這是程式設計師應該遵守的另一個好習慣。

還能繼續精簡嗎?是的。

# 使用者輸入模組

choice = input(‘ 請段公子在此輸入比劍策略:’) 

# 程式處理模組

if choice == ‘ 見招拆招’: 

print(‘ 你將在比劍中輸給慕容復’) 

else: 

關鍵字:
風傳媒歡迎各界分享發聲,來稿請寄至 opinion@storm.mg

本週最多人贊助文章