Python是一種高級語言,常用於快速開發原型、網站、科學計算、人工智慧等領域。Python的函數是將多條語句組織在一起以完成特定功能的程序代碼塊,用戶可以根據需要將代碼封裝進函數中。
一、Python函數的定義與調用
1、定義函數
def 函數名(參數列表):
函數體
return 返回值
參數列表是可以省略的,參數用逗號分隔,返回值也可以省略。
2、調用函數
函數定義好後,可以通過以下調用方式執行函數:
函數名(參數列表)
例如:
def area(width, height):
return width * height
print("長方形面積:", area(4, 5))
二、Python函數的參數傳遞
1、位置參數
參數按照位置順序依次賦給形參,調用函數時,必須以正確的順序傳遞參數值:
def power(x, n):
result = 1
while n > 0:
result *= x
n -= 1
return result
print("2的3次方是", power(2, 3))
2、關鍵字參數
通過指定參數名來給參數傳值,不需要考慮參數位置,可以混合使用位置參數和關鍵字參數:
def info(name, age, sex):
print("Name:", name)
print("Age:", age)
print("Sex:", sex)
info(age=18, name="Tom", sex="Male")
3、默認參數
在函數定義時,可以將一個參數設定為默認值,即調用函數時,如果該參數沒有傳入數據,則使用默認值:
def info(name, age, sex="Male"):
print("Name:", name)
print("Age:", age)
print("Sex:", sex)
info(name="Tom", age=18) # 輸出Sex為Male
三、Python函數的返回值
在Python函數中,通過return語句將返回值返回給調用函數,Python中的函數可以返回多個值,並且返回的結果可以是各種數據類型,包括數字、字元串、列表、字典等。
def summation(x, y):
sum = x + y
diff = x - y
return sum, diff
a, b = summation(10, 7)
print("Sum is", a)
print("Diff is", b)
四、Python匿名函數
Python中的匿名函數是一種簡單的函數,它沒有函數名,通常使用lambda關鍵字定義,常用於某些不需要複雜的函數場景中。
sum = lambda x, y : x + y
print("Sum is", sum(10, 7))
五、Python遞歸函數
遞歸函數是一種在函數內調用函數自身的方式,該函數不斷調用自身,直到達到預設條件才停止遞歸。
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n - 1)
print("5的階乘是", factorial(5))
六、Python高階函數
高階函數是指將其他函數作為參數傳入或者是將函數作為返回值的函數。高階函數在Python中得到廣泛應用,如map、filter、reduce和sorted等。
1、map函數
map函數接受兩個參數,第一個為函數,第二個為一個迭代器,該函數對迭代器中的每一個元素都執行一遍,最終返回一個迭代器:
def square(x):
return x * x
number = [1, 2, 3, 4, 5, 6]
print(list(map(square, number)))
2、filter函數
filter函數也接受兩個參數,第一個是函數,第二個是迭代器。 通過篩選出來的元素創建一個新的迭代器返回。
def is_even(n):
return n % 2 == 0
number = [1, 2, 3, 4, 5, 6]
print(list(filter(is_even, number)))
3、reduce函數
reduce函數也接受兩個參數,第一個是函數,第二個是迭代器。從左向右對每一個元素進行操作並返回結果,最終返回一個值:
from functools import reduce
def sum(x, y):
return x + y
number = [1, 2, 3, 4, 5, 6]
print(reduce(sum, number))
4、sorted函數
從 Python2.x 到 3.x,Python內置排序函數sorted()已經解決了大部分問題。sorted()函數接收一個指定可迭代類型的列表,返回該可迭代類型的排序後的列表:
number = [3, 2, 8, 4, 1, 5, 7, 6]
print(sorted(number))
原創文章,作者:HYKUA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/374922.html