日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python函数的返回值是返回引用吗_python-函数(上):函数返回值、函数调用、前向引用...

發(fā)布時(shí)間:2024/10/14 python 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python函数的返回值是返回引用吗_python-函数(上):函数返回值、函数调用、前向引用... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

編程方法:

1、面向?qū)ο?#xff1a;類--class

2、面向過程:過程--def

3、函數(shù)式編程:函數(shù)--def

#python中函數(shù)#函數(shù)的定義#打印一個(gè)佛祖鎮(zhèn)樓 -> 一個(gè)功能點(diǎn)的解釋

defprint_info():print("_ooOoo_")print("o8888888o")print("88 . 88")print("(| -_- |)")print("O\\ = /O")print("____/`---'\\____")print(". ' \\| |// `.")print("/ \\||| : |||// \\")print("/ _||||| -:- |||||- \\")print("| | \\\\\\ - /// | |")print("| \\_| ''\\---/'' | |")print("\\ .-\\__ `-` ___/-. /")print("___`. .' /--.--\\ `. . __")print(".""'< `.___\\__/___.' >'"".")print("| | : `- \\`.;`\\ _ /`;.`/ - ` : | |")print("\\ \\ `-. \\_ __\\ /__ _/ .-` / /")print("======`-.____`-.___\\_____/___.-`____.-'======")print("`=---='")print(" ")print(".............................................")print("佛祖鎮(zhèn)樓 BUG辟易")print("佛曰:")print("寫字樓里寫字間,寫字間里程序員;")print("程序人員寫程序,又拿程序換酒錢。")print("酒醒只在網(wǎng)上坐,酒醉還來網(wǎng)下眠;")print("酒醉酒醒日復(fù)日,網(wǎng)上網(wǎng)下年復(fù)年。")print("但愿老死電腦間,不愿鞠躬老板前;")print("奔馳寶馬貴者趣,公交自行程序員。")print("別人笑我忒瘋癲,我笑自己命太賤;")print("不見滿街漂亮妹,哪個(gè)歸得程序員?")

a= 10

if a == 10:#pass 占位 防止語法錯(cuò)誤

print_info()#函數(shù) -> python

函數(shù)是邏輯結(jié)構(gòu)化和過程化的一種編程方法

python中函數(shù)定義方法:

deftest(x):"The function definitions"x+=1

return x

def:定義函數(shù)的關(guān)鍵字

test :函數(shù)名

():內(nèi)可定義形參

“”:文檔描述(非必要,但是強(qiáng)烈建議為你的函數(shù)添加描述信息)

x+=1:泛指代碼塊或程序處理邏輯

return:定義返回值

#函數(shù)

deffunc1():"testing1"

print("in the func1")return0#過程

deffunc2():"testing2"

print("in the func2")

x= func1() #in the func1

y = func2() #in the func2

print("from func1 return is %s"%x) #from func1 return is 0

print("from func2 return is %s"%y) #from func2 return is None

使用函數(shù)的三大優(yōu)點(diǎn):

1.代碼重用

2.保持一致性

3.可擴(kuò)展性

函數(shù)返回值

返回值數(shù)=0:返回None(沒有return的情況)

返回值數(shù)=1:返回object

返回值數(shù)>1:返回tuple(返回一個(gè)元組)

如:

deftest01():pass

deftest02():return0deftest03():return 0,10,'Hello',['alex','lb'],{'WuDaLang':'lb'}

t1=test01()

t2=test02()

t3=test03()print("from test01 return is [%s]:"%type(t1),t1)print("from test01 return is [%s]:"%type(t2),t2)print("from test01 return is [%s]:"%type(t3),t3)

函數(shù)調(diào)用

調(diào)用方法:通過 函數(shù)名() 即可完成調(diào)用

test()執(zhí)行,()表示調(diào)用函數(shù)test,()內(nèi)可用有參數(shù)也可以沒有

注意:

每次調(diào)用函數(shù)時(shí),函數(shù)都會(huì)從頭開始執(zhí)行,當(dāng)這個(gè)函數(shù)中的代碼執(zhí)行完畢后,意味著調(diào)用結(jié)束了

當(dāng)然了如果函數(shù)中執(zhí)行到了return也會(huì)結(jié)束函數(shù)

參數(shù):

1.形參和實(shí)參

定義時(shí)小括號(hào)中的參數(shù),用來接收參數(shù)用的,稱為 “形參”

調(diào)用時(shí)小括號(hào)中的參數(shù),用來傳遞給函數(shù)用的,稱為 “實(shí)參”

形參:形式參數(shù),不是實(shí)際存在,是虛擬變量。在定義函數(shù)和函數(shù)體的時(shí)候使用形參,目的是在函數(shù)調(diào)用時(shí)接收實(shí)參(實(shí)參個(gè)數(shù),類型應(yīng)與形參一一對(duì)應(yīng))

實(shí)參:實(shí)際參數(shù),調(diào)用函數(shù)時(shí)傳給函數(shù)的參數(shù),可以是常量,變量,表達(dá)式,函數(shù),傳給形參

區(qū)別:形參是虛擬的,不占用內(nèi)存空間,形參變量只有在被調(diào)用時(shí)才分配內(nèi)存單元,實(shí)參是一個(gè)變量,占用內(nèi)存空間,數(shù)據(jù)傳送單向,實(shí)參傳給形參,不能形參傳給實(shí)參

#定義一個(gè)有參數(shù)的函數(shù)#形參: 形式參數(shù)#格式: def 函數(shù)名(形參1, 形參2, ...):

defmy_func(a, b):

ret= a +bprint(ret)#執(zhí)行一個(gè)有參數(shù)的函數(shù)#實(shí)參: 實(shí)際參數(shù)#格式: 函數(shù)名(實(shí)參1, 實(shí)參2,...)

num1 = 80num2= 9

#在執(zhí)行函數(shù)的時(shí)候 就好比是a = num1 b = num2

my_func(num1, num2)

2.位置參數(shù)和關(guān)鍵字(標(biāo)準(zhǔn)調(diào)用:實(shí)參和形參位置一一對(duì)應(yīng);關(guān)鍵字調(diào)用:位置無需固定)

deftest(x,y):print(x)print(y)

test(1,2) #位置參數(shù)調(diào)用,實(shí)參的位置與形參的位置要一一對(duì)應(yīng)

test(y=2,x=1) #關(guān)鍵字參數(shù),調(diào)用函數(shù)的時(shí)候使用的是函數(shù)的形參名,與形參順序無關(guān)

test(3,y=2) #混合使用時(shí),位置參數(shù)在前,關(guān)鍵字參數(shù)在后,關(guān)鍵字參數(shù)是不能寫在位置參數(shù)前面的

3.默認(rèn)參數(shù)(缺省參數(shù)): 給形參設(shè)置了一個(gè)默認(rèn)值

def test(x,y=2):print(x)print(y)

test(1)

test(1,y=3)

test(1,3)#默認(rèn)參數(shù)特點(diǎn):調(diào)用函數(shù)的時(shí)候,默認(rèn)參數(shù)非必須傳遞

4.參數(shù)組

#*args: 接受N個(gè)位置參數(shù),轉(zhuǎn)換成元組形式

def test(*args): #參數(shù)不固定

print(args)

test(1,3,2,4,5)

test(*[1,2,4,5,5]) #args = tuple([1,2,4,5,5])

def test1(x,*args):print(x)print(args)

test1(1,2,3,4,5,6,7)

#**kwargs:接受N個(gè)關(guān)鍵字參數(shù),轉(zhuǎn)換成字典的方式

def test2(**kwargs):print(kwargs)print(kwargs['name'])print(kwargs['age'])print(kwargs['sex'])

test2(name='alex',age=8,sex='F')

test2(**{'name':'alex','age':8,'sex':'F'})def test3(name,**kwargs):print(name)print(kwargs)

test3('alex') #后面接收一個(gè)空字典

test3('alex',age=18,sex='m')def test4(name,age=18,**kwargs): #參數(shù)組要放后面

print(name)print(age)print(kwargs)

test4('alex',sex='m',hobby='tesla')

test4('alex',5,sex='m',hobby='tesla')

test4('alex',sex='m',hobby='tesla',age=3)def test5(name,age=18,*args,**kwargs): #參數(shù)組要放后面

print(name)print(age)print(args)print(kwargs)

test5('alex',age=34,sex='m',hobby='tesla')

函數(shù)返回值

#python 學(xué)習(xí)了 一個(gè)內(nèi)置函數(shù) len(object)#定一個(gè)字符串

my_str = "hello"

#內(nèi)置函數(shù)如何實(shí)現(xiàn)的

defmy_len(object):

ret=0for i inobject:

ret+= 1

#如果有一個(gè)return 數(shù)值 成為這個(gè)函數(shù)有返回值

returnret

my_l=my_len(my_str)#None 沒有返回值 空值類型

print("自定義的:",my_l) #自定義的: 5

l =len(my_str)print(l) #5

#四種函數(shù)的類型#01- 無參數(shù)無返回值

defmy_print():print("你好")print("python")#執(zhí)行函數(shù)

my_print()#02- 無參數(shù)有返回值

defmy_pi():return 3.1415926

print(my_pi())#03- 有參數(shù)無返回值

defprint_info(name):print("你好%s" %name)

print_info("龜叔")#04- 有參數(shù)有返回值defmy_func(a, b):return a -b

result= my_func(10, 5)print(result)

函數(shù)返回值之多個(gè)return

一個(gè)函數(shù)中可以有多個(gè)return語句,但是只要有一個(gè)return語句被執(zhí)行到,那么這個(gè)函數(shù)就會(huì)結(jié)束了,因此后面的return沒有什么用處

如果程序設(shè)計(jì)為如下,是可以的因?yàn)椴煌膱鼍跋聢?zhí)行不同的return

#包含多個(gè)return

defmy_func(score):if score <0:print("您傳入的分?jǐn)?shù)有誤!!!")return #函數(shù)的執(zhí)行提前結(jié)束

print("測試")#對(duì)分?jǐn)?shù)進(jìn)行判斷

if score >= 90:return "優(yōu)"

elif score >= 80:return "良"

elif score >= 60:return "中"

elif score >=0:return "差"

print("測試") #不會(huì)執(zhí)行 因?yàn)樵谇懊嬉呀?jīng)執(zhí)行了return#提出需求 如果調(diào)用函數(shù)的人 傳入的分?jǐn)?shù)小于0 那么就人為傳入的分?jǐn)?shù)錯(cuò)誤 告知函數(shù)的調(diào)用者

my_func(-10)

函數(shù)返回多個(gè)數(shù)據(jù)

return后面可以是元組,列表、字典等,只要是能夠存儲(chǔ)多個(gè)數(shù)據(jù)的類型,就可以一次性返回多個(gè)數(shù)據(jù)

如果return后面有多個(gè)數(shù)據(jù),那么默認(rèn)是元組

#需求 傳入一個(gè)人名字 和年齡,例如 小明 22#通過調(diào)用函數(shù)后 得到兩個(gè)字符串 姓名:小明 年齡:22#列表

defdeal_name_age(name, age):#處理后 姓名:小明 年齡:22

new_name = "姓名:%s" %name

new_age= "年齡:%d" %agereturn[new_name, new_age]#變量為列表

ret = deal_name_age("小明", 22)print(ret[0])print(ret[1])#字典

defdeal_name_age(name, age):#處理后 姓名:小明 年齡:22

new_name = "姓名:%s" %name

new_age= "年齡:%d" %agereturn {"name":new_name, "age":new_age}

my_dict= deal_name_age("小明", 22)print(my_dict["name"])print(my_dict["age"])#元組

defdeal_name_age(name, age):#處理后 姓名:小明 年齡:22

new_name = "姓名:%s" %name

new_age= "年齡:%d" %age#如果在函數(shù)內(nèi)部 使用return 返回值1 返回值2,... 默認(rèn)就是元組類型 不需要寫小括號(hào)

returnnew_name, new_age

my_tuple= deal_name_age("小明", 22)print(type(my_tuple)) #

print(my_tuple[0]) #姓名:小明

print(my_tuple[1]) #年齡:22

函數(shù)的嵌套調(diào)用

一個(gè)函數(shù)里面又調(diào)用了另外一個(gè)函數(shù),這就是所謂的函數(shù)嵌套調(diào)用

defmy_func1():print("my_func1開始")print("my_func1結(jié)束")defmy_func2():print("my_func2開始")

my_func1()print("my_func2結(jié)束")#執(zhí)行函數(shù)

my_func2()"""# 最終打印結(jié)果

my_func2開始

my_func1開始

my_func1結(jié)束

my_func2結(jié)束"""

如果函數(shù)A中,調(diào)用了另外一個(gè)函數(shù)B,那么先把函數(shù)B中的任務(wù)都執(zhí)行完畢之后才會(huì)回到上次 函數(shù)A執(zhí)行的位置

前向引用

函數(shù)action體嵌套某一函數(shù)logger,該logger的聲明必須早于action的調(diào)用,否則報(bào)錯(cuò)

defaction():print("in the action")

logger()

action()deflogger():print("in the logger")#報(bào)錯(cuò):NameError: name 'logger' is not defined

deflogger():print("in the logger")defaction():print("in the action")

logger()

action()

defaction():print("in the action")

logger()deflogger():print("in the logger")

action()

總結(jié)

以上是生活随笔為你收集整理的python函数的返回值是返回引用吗_python-函数(上):函数返回值、函数调用、前向引用...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。