閒聊
昨天學習了條件判斷跟迴圈後,今天進入到函數的世界。(๑•̀ㅂ•́)و✧
函數可以分為定義函數和內建函數,前幾天有用過一點點內建的函數,你發現了嗎?
事不宜遲,就進入到今天的內容吧!
函數Function
根據Geeksforgeeks
「Python Functions is a block of statements that return the specific task.
The idea is to put some commonly or repeatedly done tasks together and make a function so that instead of writing the same code again and again for different inputs, we can do the function calls to reuse code contained in it over and over again. 」
以及W3schools
「A function is a block of code which only runs when it is called.
You can pass data, known as parameters, into a function.
A function can return data as a result.」
簡單來說,就是我們需要運行某些程式完成某些事情的時候,或是將經常使用的程式碼寫成一個小單元,就可以呼叫函數(Function)來幫助我們。
def
語句,def function() :
print('Hello.')
def function() :
print('Hello.')
function()
#output
Hello.
return
def score(x) :
return x*2
print(score(2))
print(score(3))
print(score(5))
#output
2
6
10
for str in 'count' :
count += 1
if str == 'o'
pass
print(str)
#output
c
o
u
n
t
那既然如此,為什麼要寫呢?
因為會碰到不寫程式碼會錯誤的問題。
比如說,今天定義了一個函數(function),卻還沒實作,如果只放著會造成語法錯誤,這時候就可以用pass
防止。
def myfunction() :
pass
參數
def power (x, n=2) : # n=2是默認參數
s =1
while n > 0 :
n = n-1
s = s *x
return s
print(power(5))
#output 25
*
來表示這個參數是可變的。def sumNumber(*params):
total = 0
for param in params:
total +=param
return total
print("2個參數: sumNumber(7,4) = %d" % sumNumber(7,4))
print("3個參數: sumNumber(9,6,8) = %d" % sumNumber(9,6,8))
print("2個參數: sumNumber(7,8,13,11) = %d" % sumNumber(7,8,13,11))
#output
2個參數: sumNumber(7,4) = 11
3個參數: sumNumber(9,6,8) = 23
2個參數: sumNumber(7,8,13,11) = 39
def person (name, age, **know) : #用**將物件打包成dict
print('name :',name,'age :', age, 'other :',know)
person('Teresa',20,indentity = 'student')
#output
name : Teresa age : 20 other : {'indentity': 'student'}
變數範圍
常用內建函數(函式)
以下會介紹一些比較常使用到的函數
ex1 = int(22.5) #將22.5轉成整數(無條件捨去)
print(ex1) #output 22
ex2 = float(30) #將30轉成浮點數(小數)
print(ex2) #output 30
ex3 = abs(-5) #取絕對值
print(ex3) #output 5
ex4 = pow(2,3) #取2的3次方
print(ex4) #output 8
ex5 = round(40.72) #四捨五入
print(ex5) #output 41
ex6 = sum([1,2,3,4,5]) #取得總和
print(ex6) #output 10
ex7 = type('str') #取得物件的資料型態
print(ex7) #output <class 'str'>
ex8 = len('str') #回傳物件長度(元素個數)
print(ex8) #output 3
range() #取某一範圍的數
chr() #回傳代表字元之 Unicode 編碼位置為整數 i 的字串
bin() #將變數轉為二進位
oct() #將變數轉成八進位
hex() #將變數轉成十六進位
max()、min() #回傳最大、最小值
open() #開啟檔案(File)
結語
Funciton的範圍比我想像的還大很多,學起來不是一件容易的事情。
熟練常用的函數後,撰寫的速度又可以提升一點了!
明天!
【Day 6】使用Python處理CSV文件
參考資料
https://www.geeksforgeeks.org/python-functions/
https://www.w3schools.com/python/python_functions.asp
Python入門(二)函數基礎https://allaboutdataanalysis.medium.com/python%E5%85%A5%E9%96%80-%E4%BA%8C-%E5%87%BD%E6%95%B8%E5%9F%BA%E7%A4%8E-93125efd21c
內建函式 https://docs.python.org/zh-tw/3/library/functions.html#len