一、函數(shù)的引入
從實現(xiàn)函數(shù)的角度來看,其至少需要想清楚以下 3 點:
1.函數(shù)需要幾個關鍵的需要動態(tài)變化的數(shù)據(jù),這些數(shù)據(jù)應該被定義成函數(shù)的參數(shù)。
2.函數(shù)需要傳出幾個重要的數(shù)據(jù)(就是調用該函數(shù)的人希望得到的數(shù)據(jù)),這些數(shù)據(jù)應該被定義成返回值。
3.函數(shù)的內部實現(xiàn)過程。
常用的內置函數(shù): max,min,sum, divmod
函數(shù)必須有輸入和輸出。
max_num = max(1, 2, 3)
print(max_num)
1.如何創(chuàng)建函數(shù)?定義函數(shù),函數(shù)內容并不會執(zhí)行
函數(shù)的輸入專業(yè)叫參數(shù), 函數(shù)的輸出叫返回值。
重點:
- 形參: 形式參數(shù),不是真實的值(定義函數(shù)時的參數(shù))
- 實參:實際參數(shù),是真實的值(調用函數(shù)時的參數(shù))
def get_max(num1, num2):
result = num1 if num1 > num2 else num2
return result
2. 如何調用函數(shù)?
max_num = get_max(30, 80)
print(max_num)
二、變量的作用域
"""
可變數(shù)據(jù)類型:list, dict,set
不可變數(shù)據(jù)類型: 數(shù)值型, str, tuple
"""
# 1. 全局變量: 全局生效的變量。函數(shù)外面的變量。
name = 'admin'
def login():
print(name)
login()
# 2. 局部變量: 局部生效的變量。函數(shù)內部的變量。
def logout():
age = 19
print(age)
logout()
# print(age)
# 3. 函數(shù)內部修改全局變量.
# 1). money是局部變量還是全局變量? 全局變量
# 2). 如果要在函數(shù)中修改全局的變量,不能直接修改。 需要用global關鍵字聲明修改的變量是全局變量。
# 3). 不可變數(shù)據(jù)類型修改全局變量一定要global聲明, 可變數(shù)據(jù)類型不需要。
def hello():
global money
money += 1
users.append('user1')
print(money, users)
money = 100 # 不可變數(shù)據(jù)類型
users = [] # 可變數(shù)據(jù)類型
hello()
三、參數(shù)傳遞
四、常見的4類形參
1. 必選參數(shù):必須要傳遞的參數(shù)
2. 默認參數(shù):可傳可不傳的參數(shù)
3. 可變參數(shù): 參數(shù)的個數(shù)會變化,可以傳0,1,2,3,…n
4. 關鍵字參數(shù):可以傳遞key和value
"""
必選參數(shù):必須要傳遞的參數(shù)
默認參數(shù):
可變參數(shù):*args - 元組
關鍵字參數(shù):**kwargs - 字典
"""
# 1. 必選參數(shù):必須要傳遞的參數(shù)
def get_max(num1: int, num2: int) -> int:
return num1 if num1 > num2 else num2
result = get_max(20, 30)
print(result)
# 2. 默認參數(shù):可傳可不傳的參數(shù)
def pow(x, y=2):
return x ** y
result = pow(3) # x=3, y=2, result=9
print(result)
result = pow(2, 4) # x=2,y=4, result=2**4=8
print(result)
# 3. 可變參數(shù): 參數(shù)的個數(shù)會變化,可以傳0,1,2,3,......n
# args是元組
# args=arguments
def my_sum(*args):
return sum(args)
result = my_sum(4, 5, 6) # 15
print(result)
# 4. 關鍵字參數(shù):可以傳遞key和value
# kwargs存儲在字典中
def enroll(name, age=18, **kwargs):
print(f"""
入學信息
1. 姓名:{name}
2. 年齡:{age}
3. 其他:{kwargs}
""")
enroll('張三', country='china', english='GRE', sports=['籃球', '羽毛球'])
from collections import namedtuple
五、匿名函數(shù)
六、匿名函數(shù)對應的leetcode題目
七、遞歸函數(shù)
文章來源:http://www.zghlxwxcb.cn/news/detail-473538.html
遞歸實現(xiàn)fib數(shù)列文章來源地址http://www.zghlxwxcb.cn/news/detail-473538.html
到了這里,關于python-常用的內置函數(shù)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!