程式裡的函數跟數學中的函數有一點不太一樣,
數學中的函數限制較多,
程式中的函數限制較少,
在 Python
中更是如此。
範例程式碼
上面的程式碼是用來輸出輸入的東西。
print()
是一個內建的函數,用於輸出。
input()
也是內建函數,用於輸入。
他們分別都有各自的引數,
但只有 input()
有回傳,
在數學上可理解為函數值,
print()
則沒有。
在上面的程式碼中,
有 sum()
這個內建函數,
可以看到他以 ar
為參數帶入 sum()
的引數,
並且回傳 ar
裡面所有元素的和。
程式裡的遞迴跟數學的遞迴很像,
但是通常程式裡的遞迴是從末項開始的。
以費氏數列為例,
在數學上的遞迴關係式如下。
而在程式上會這樣寫
數學上式直接用起始項去推第 項,
但程式上是從第 出發,找到起始項後再把答案往回做。
其實遞迴的應用很廣,
也很複雜,
像是窮舉、遍歷等,
如果各位有繼續在程式這條路上精進的話,
一定會遇到的。
基本上,
學一個資料結構只要掌握三點就差不多了。
可以用運算子 []
或是迭代一個 List
物件
修改可以分成三個部分,
修改值、增加節點、刪除節點。
其實還有很多函數,
但是這些其實就夠用了,
如果想要學其他的可以自己去查查看
其實就把兩個 List
相加就好
直接呼叫 sort()
函數
關於 sort()
函數其實還有很多可以講,
但因為比較複雜,
這裡就不多作介紹。
可以把它想成不能修改的 List
,
也就是說 List
裡面的修改、排序它都不能用。
但是他有一個優勢是其他結構無法取代的,
那就是 unpack
。
其實在第一堂課就有遇過他了,
那個當初很毒的輸入又多理解了一項,
那個 a, b = map(...)
,
map(...)
回傳的是 Map
,
而 Map
在被轉成 Tuple
,
所以才能 unpack
給 a
跟 b
。