一、Python函數
在Python中,函數是指一段可重複調用的代碼塊。它接受輸入(如果有)並返回輸出(如果有)。Python使用關鍵字def(define,定義)來定義函數。通過使用函數,我們可以將複雜的問題分解為更小的可處理的部分。這種分解是結構編程的一種基本思想。
def 函數名(參數列表):
函數體
return 返回值
其中,參數列表和返回值可以為空。函數體必須按照縮進方式編寫,以表示其內部代碼塊的範圍。return語句是可選的。如果函數體中沒有return語句,則該函數沒有返回值。
二、Python函數參數
函數參數是指函數中定義的變數。這些變數的值由函數的調用者提供,並在函數中使用。Python有多種類型的函數參數:
1. 位置參數
位置參數是指根據它們出現在函數調用中的順序傳遞給函數的參數。函數中的第一個參數是由調用中第一個參數提供的,第二個參數是由調用中第二個參數提供的,以此類推。
def add(x, y):
return x + y
print(add(2, 3)) #輸出5
print(add('hello', 'world')) #輸出helloworld
2. 關鍵字參數
關鍵字參數是指通過參數名傳遞給函數的參數。函數中的參數按照其名稱匹配傳遞給函數的參數。
def add(x, y):
return x + y
print(add(x=2, y=3)) #輸出5
print(add(y='world', x='hello')) #輸出helloworld
3. 默認參數
默認參數是指在函數定義中指定默認值的參數。如果函數調用中沒有提供該參數的值,則使用默認值。
def add(x, y=1):
return x + y
print(add(2)) #輸出3
print(add(2, 3)) #輸出5
4. 可變參數
可變參數是指在函數定義中不指定參數數量的參數。這些參數被封裝成元組(Tuple)。
def add(*nums):
sum = 0
for num in nums:
sum += num
return sum
print(add(1, 2, 3)) #輸出6
print(add(1, 2, 3, 4, 5)) #輸出15
5. 關鍵字可變參數
關鍵字可變參數是指在函數定義中不指定參數數量及其名稱的參數。這些參數被封裝成字典(Dictionary)。
def show_info(**info):
for key, value in info.items():
print(key + ':' + value)
show_info(name='John', age='18', sex='Male')
三、函數的遞歸調用
遞歸是指函數調用自身的行為。在Python中,函數可以通過遞歸調用自身來解決複雜的問題。
def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
print(fact(5)) #輸出120
在上面的示例中,函數fact()計算階乘。當fact(5)被調用時,函數將被遞歸地調用五次。最終返回5 * 4 * 3 * 2 * 1 = 120。
四、函數裝飾器
裝飾器是指一種函數,它可以修改其他函數的功能。Python中的裝飾器是一種被稱為「語法糖」的高級語言特性。它允許在對函數的調用和建立之間插入代碼。
def hello(name):
print("Hello, " + name)
def uppercase(func):
def wrapper(name):
func(name.upper())
return wrapper
hello = uppercase(hello)
hello("John") #輸出Hello, JOHN
在上面的示例中,函數uppercase()是一個裝飾器。它將函數hello()修改為將其參數轉換為大寫字母,然後再將它傳遞到hello()中。
原創文章,作者:QIJJ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/149854.html