# First Function

## 第一個函式

我們來看看以下的範例:

```python
def hello1():
    print('Hello, World!')


def hello2(area):
    print('Here is ' + area + '!')


def hello3(myName, area):
    hello1()
    print('My name is ' + myName + '.')
    hello2(area)


def printHLine():
    print('-----------------------')


hello1()
printHLine()
hello2('Taiwan')
printHLine()
hello3('Jason', 'Taiwan')
```

函式的組成是由`def`陳述句開頭，然後function name在中間，`()`裡面放著參數，最後仍以`:`結尾， 有點像是數學的y=f(x)，給予函式x的值，會輸出y為結果。

上面的程式碼總共有四個程式碼，hello1, hello2, hello3, 以及printHLine。

在一個程式檔案中，如果要呼叫函式，則函式必須定義在先(def)，所以本例下方才可以呼叫`hello1()`。

`def hello2(area)`這個代表著函式可以接受area一個變數的代入，代入之後，hello2之中就可以重複使用這個變數。

如果你仔細看程式碼，`hello1()`與`hello2('Taiwan')`很單純，但為了展示函式可以再呼叫函式， 我設計了hello3，此函式裡面又呼叫了hello1與hello2，來組成了一個完整的問候過程。

請試看看直接執行這個程式，來理解函式的使用。

## 函式的目的

前述曾說過，一個軟體實際上是幾千幾萬行以上所組成的，因此函式可以縮小閱讀的範圍，分割不同功能，進行責任劃分， 如此再未來維護與閱讀上，才會比較有效率。
