自訂函數

當我們的程式越寫越複雜,我們會去利用自訂函數去簡化我們的程式,或者是重複利用我們寫好的程式。

數學的練習可以使用亂數產生題目,但是,如果我們會有很多題目要讓學生去進行練習,要怎麼做呢? 例如,我們要給學生一些化學元素的中文名稱,然後,要讓學生回答這些中文名稱對應的化學符號,要怎麼做呢?

entered = input("氫的化學符號")
if (entered == "H"):
    print("正確")
else:
    print("答錯了")

entered = input("氧的化學符號")
if (entered == "O"):
    print("正確")
else:
    print("答錯了")

Untitled

我們會發現其實有些程式是重複的,我們可以將重複的部分,利用自訂函數來簡化

函數的使用方式就像內建函數一樣,只是,我們要自己定義函數,def是個關鍵字,代表要定義一個函數,「quiz」是函數的名稱,後面會有()來定義傳給函數的參數,如果沒有參數的話,可以留空白。

def quiz(question, answer):
    entered = input(question+"的化學符號")
    if (entered == answer):
        print("正確")
    else:
        print("答錯了")

quiz("氫", "H")
quiz("氧", "O")

當我們要增加一題的時候,是不是容易多了?

<aside> 💡 自訂函數是程式設計很重要的觀念,我們使用的內建函數,其實也都是由自訂函數構成。透過內建函數將程式模組化,可重複利用程式,也可以提升程式的可讀性

</aside>

List與Dictionary

接下來,我們來介紹python的一些內建資料結構。我們先來了解一下如何使用List(串列)來儲存題目,首先,先定義一個List,中括號就代表是一個List:

questions = ["氫", "氧"]
answers = ["H", "O"]

我們可以利用len()來取得List長度

count = len(questions)

利用迴圈去取得每個一元素

for x in range(count):
    quiz(questions[x], answers[x])