當我們的程式越寫越複雜,我們會去利用自訂函數去簡化我們的程式,或者是重複利用我們寫好的程式。
數學的練習可以使用亂數產生題目,但是,如果我們會有很多題目要讓學生去進行練習,要怎麼做呢? 例如,我們要給學生一些化學元素的中文名稱,然後,要讓學生回答這些中文名稱對應的化學符號,要怎麼做呢?
entered = input("氫的化學符號")
if (entered == "H"):
print("正確")
else:
print("答錯了")
entered = input("氧的化學符號")
if (entered == "O"):
print("正確")
else:
print("答錯了")
我們會發現其實有些程式是重複的,我們可以將重複的部分,利用自訂函數來簡化
函數的使用方式就像內建函數一樣,只是,我們要自己定義函數,def是個關鍵字,代表要定義一個函數,「quiz」是函數的名稱,後面會有()來定義傳給函數的參數,如果沒有參數的話,可以留空白。
def quiz(question, answer):
entered = input(question+"的化學符號")
if (entered == answer):
print("正確")
else:
print("答錯了")
quiz("氫", "H")
quiz("氧", "O")
當我們要增加一題的時候,是不是容易多了?
<aside> 💡 自訂函數是程式設計很重要的觀念,我們使用的內建函數,其實也都是由自訂函數構成。透過內建函數將程式模組化,可重複利用程式,也可以提升程式的可讀性。
</aside>
接下來,我們來介紹python的一些內建資料結構。我們先來了解一下如何使用List(串列)來儲存題目,首先,先定義一個List,中括號就代表是一個List:
questions = ["氫", "氧"]
answers = ["H", "O"]
我們可以利用len()來取得List長度
count = len(questions)
利用迴圈去取得每個一元素
for x in range(count):
quiz(questions[x], answers[x])