一、什麼是函數
函數是Python中用於封裝代碼、實現重複利用的一種機制。函數可以接受參數、返回值或不返回值等操作。它是一種有序執行的過程,其中包含一組語句,一般情況下在需要時可以反覆調用。
下面代碼展示了如何定義一個簡單的函數:
def greet(name):
print('Hello, %s!' % name)
調用函數可以調用不同的參數:
greet('Tom')
greet('Jerry')
輸出結果為:
Hello, Tom! Hello, Jerry!
二、函數參數的傳遞
函數參數可以是必需參數、關鍵字參數、默認參數和不定長參數。
1. 必需參數
必需參數是函數定義中必須傳入的參數。如下所示:
def greet(name, age):
print('Hi, my name is %s and I am %d years old.' % (name, age))
greet('Tom', 26)
輸出結果為:
Hi, my name is Tom and I am 26 years old.
2. 關鍵字參數
關鍵字參數是可以不按順序調用的參數。如下所示:
def greet(name, age):
print('Hi, my name is %s and I am %d years old.' % (name, age))
greet(age=26, name='Tom')
輸出結果為:
Hi, my name is Tom and I am 26 years old.
3. 默認參數
默認參數是可以傳入的可選參數。如下所示:
def greet(name, age=26):
print('Hi, my name is %s and I am %d years old.' % (name, age))
greet('Tom')
greet('Jerry', 25)
輸出結果為:
Hi, my name is Tom and I am 26 years old. Hi, my name is Jerry and I am 25 years old.
4. 不定長參數
不定長參數是指可以傳入不固定數量的參數,在函數內部會被解析成一個元組或字典。如下所示:
def greet(*names):
print('Hi, my name is %s' % (names[0]))
for name in names[1:]:
print('Hi, his name is %s' % name)
greet('Tom', 'Jerry', 'Spike')
輸出結果為:
Hi, my name is Tom Hi, his name is Jerry Hi, his name is Spike
三、函數返回值
函數可以返回一個值或多個值。使用return語句返回一個值或多個值,返回後函數立即結束。如下所示:
def add(a, b):
return a+b
def swap(a, b):
return b, a
print(add(3, 4))
print(swap(3, 4))
輸出結果為:
7 (4, 3)
四、局部變量與全局變量
在函數內部定義的變量為局部變量,只在函數內部有效。在函數外部定義的變量為全局變量,可以在程序的任何地方使用。如下所示:
x = 0 # 全局變量
def add(a, b):
x = a + b # 局部變量
return x
print(add(3, 4))
print(x)
輸出結果為:
7 0
五、內嵌函數
內嵌函數是指在函數內部定義的函數,只能在外層函數中調用。如下所示:
def outer(a, b):
def inner(x, y):
return x*y
return inner(a, b)
print(outer(3, 4))
輸出結果為:
12
六、Lambda函數
Lambda函數是一種匿名函數,可以用於簡單的函數編寫。Lambda函數的語法如下所示:
lambda arguments: expression
如下代碼展示如何使用Lambda函數:
add = lambda a, b: a+b print(add(3,4))
輸出結果為:
7
七、總結
函數是Python中非常重要的一種機制,能夠有效地提升程序的可讀性和可維護性。掌握函數的使用方法,對於編寫高質量、高效的程序非常重要。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/155504.html
微信掃一掃
支付寶掃一掃