Python函数的定义和使用
生活随笔
收集整理的這篇文章主要介紹了
Python函数的定义和使用
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
def test(x): # x代表形參'''2*x+1:param x:整形數(shù)字:return:返回計(jì)算結(jié)果'''y = 2*x+1return y
p = test(3) # test()表示運(yùn)行名為test函數(shù),3代表實(shí)參,給x進(jìn)行賦值
print(p)
函數(shù)的定義:
- def: 表示函數(shù)的關(guān)鍵字
- 函數(shù)名: 函數(shù)的名稱, 根據(jù)函數(shù)名調(diào)用函數(shù)
- 函數(shù)體: 函數(shù)中進(jìn)行一系列的邏輯計(jì)算
- 參數(shù): 為函數(shù)執(zhí)行完畢后, 可以給調(diào)用者返回?cái)?shù)據(jù)
一. 為什么要用函數(shù)?
- 減少代碼量
- 保持一致性
- 易維
二. 函數(shù)的參數(shù)
函數(shù)有三種不同的參數(shù):
- 普通參數(shù)
- 默認(rèn)參數(shù)
注:默認(rèn)參數(shù)需要放在參數(shù)列表最后
- 動(dòng)態(tài)參數(shù) *args
- 動(dòng)態(tài)參數(shù) **kwargs
三. 函數(shù)的變量
函數(shù)的變量可分為 全局變量和局部變量
全局變量(大寫)
定義:沒有縮進(jìn)的變量
局部變量(小寫)
定義:子程序下定義的變量
''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' name = 'python' # 這里就指全局變量def chan_name():name = '帥了一比' # 這里就指局部變量print('chan_name', name)chan_name() print(name) #結(jié)果 chan_name 帥了一比 pythonglobal和nolocal
global聲明是全局變量,nolocal指定上一級(jí)變量
未聲明全局變量
x = 99 def func():x = 88 func() print(x) #輸出99聲明全局變量
x = 99 def func()global xx = 88 func() print(x) #輸出88未指定上一級(jí)變量
def func():count = 1def foo():count = 12foo()print(count) func() #輸出1指定上一級(jí)變量
def func():count = 1def foo():nonlocal countcount = 12foo()print(count) func() #輸出12四. 遞歸函數(shù)
ps: 用的好的都是大牛~
就是函數(shù)自己調(diào)用自己
特性:
-
必須有一個(gè)明確的結(jié)束條件,
-
每次進(jìn)入深一層遞歸時(shí),問題規(guī)模都應(yīng)有所減少
五. lamabda匿名函數(shù)
lambda用法,冒號(hào)之前的是入?yún)?#xff0c;冒號(hào)之后的是表達(dá)式,返回的值,最簡單的函數(shù)
print [(lambda x:x*x)(x)for x in range(11)] #結(jié)果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100] print (lambda x:x*x)(3) #結(jié)果:9 g=lambda x:x*x print g(4) #結(jié)果:16總結(jié)
以上是生活随笔為你收集整理的Python函数的定义和使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python基础教程:python中@的
- 下一篇: Python基础教程:赋值语句和布尔值