欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python的函數(shù)形參和返回值你了解嗎

 更新時(shí)間:2022年03月16日 09:14:41   作者:https://blog.csdn.net/ljsykf/article/details/123463892  
這篇文章主要為大家詳細(xì)介紹了python的函數(shù)形參和返回值,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

函數(shù)的返回值

一個(gè)函數(shù)執(zhí)行后可以返回多個(gè)返回值

def measure():
    print('測(cè)量開始。。。。')
    temp=39
    wetness=50
    print("測(cè)量結(jié)束")
    #元組--可以包含多個(gè)數(shù)據(jù),因此可以使用元組一次返回多個(gè)值
    return (temp,wetness)
result=measure()
print(result)

運(yùn)行結(jié)果:

測(cè)量開始。。。。
測(cè)量結(jié)束
(39, 50)

def measure():
    print('測(cè)量開始。。。。')
    temp=39
    wetness=50
    print("測(cè)量結(jié)束")
    #元組--可以包含多個(gè)數(shù)據(jù),因此可以使用元組一次返回多個(gè)值
    return (temp,wetness)
#如果函數(shù)返回的類型是元組,同時(shí)希望單獨(dú)的處理元組中的元素
#可以使用多個(gè)變量,一次接收函數(shù)的返回結(jié)果
#使用多個(gè)變量接收結(jié)果時(shí),變量的個(gè)數(shù)應(yīng)該和元組的元素個(gè)數(shù)一致
gl_temp,gl_wetness=measure()
print(gl_temp)
print(gl_wetness)

運(yùn)行結(jié)果:

測(cè)量開始。。。。
測(cè)量結(jié)束
(39, 50)

交換兩個(gè)變量的值

a=6
b=100
#使用其他變量
c=a
a=b
b=c
#不使用其他變量
a=a+b
b=a-b
a=a-b
#python專有
a,b=b,a
print("a的值為 %d"%a)
print("b的值為 %d"%b)

函數(shù)的參數(shù)

不可變參數(shù)和可變參數(shù)

在函數(shù)內(nèi)部,針對(duì)參數(shù)使用賦值語句,不會(huì)改變調(diào)用函數(shù)時(shí)傳遞的實(shí)參的值
無論傳遞的參數(shù)是可變還是不可變,只要針對(duì)參數(shù)使用賦值語句,會(huì)在函數(shù)內(nèi)部修改局部變量的引用,不會(huì)影響到外部變量的引用

def demo(num,num_list):
    print("函數(shù)內(nèi)部")
    #在函數(shù)內(nèi)部,針對(duì)參數(shù)使用賦值語句,形參的引用發(fā)生了變化,但是實(shí)參的引用沒變
    num=200
    num_list=[1,2,3]
    print(num)
    print(num_list)
    print("函數(shù)內(nèi)部代碼完成")
gl_num=99
gl_list=[2,3,4]
demo(gl_num,gl_list)
print(gl_num)
print(gl_list)

運(yùn)行結(jié)果:

函數(shù)內(nèi)部
200
[1, 2, 3]
函數(shù)內(nèi)部代碼完成
99
[2, 3, 4]

如果傳遞的參數(shù)是可變類型,在函數(shù)內(nèi)部,使用方法修改了數(shù)據(jù)的內(nèi)容,同樣會(huì)影響到外部的數(shù)據(jù)

def demo(num_list):
    print("函數(shù)內(nèi)部")
    num_list.append([1,2,3])
    print(num_list)
    print("函數(shù)內(nèi)部代碼完成")

gl_list=[2,3,4]
demo(gl_list)
print(gl_list)

運(yùn)行結(jié)果:

函數(shù)內(nèi)部
[2, 3, 4, [1, 2, 3]]
函數(shù)內(nèi)部代碼完成
[2, 3, 4, [1, 2, 3]]

+=

在python中,列表變量調(diào)用+=本質(zhì)上在執(zhí)行列表變量的extend方法,不會(huì)修改變量的引用

def demo(num,num_lst):
    print("函數(shù)開始")
    num+=num
    num_lst+=num_lst
    print(num)
    print(num_lst)
    print("函數(shù)結(jié)束")
gl_num=9
gl_list=[1,2,3]
demo(gl_num,gl_list)
print(gl_num)
print(gl_list)

運(yùn)行結(jié)果:

函數(shù)開始
18
[1, 2, 3, 1, 2, 3]
函數(shù)結(jié)束
9
[1, 2, 3, 1, 2, 3]

函數(shù)的參數(shù)

缺省參數(shù)

定義函數(shù)時(shí),可以給某個(gè)參數(shù)指定一個(gè)默認(rèn)值,具有默認(rèn)值的參數(shù)就叫做缺省參數(shù)

調(diào)用函數(shù)時(shí),如果沒有傳入缺省參數(shù)的值,則在函數(shù)內(nèi)部使用定義函數(shù)時(shí)指定的參數(shù)默認(rèn)值

(1)指定函數(shù)的缺省參數(shù)

在參數(shù)后使用賦值語句,可以指定參數(shù)的缺省值

def print_info(name,gender=True):
    gender_text="男生"
    if not gender:
        gender_text="女生"
    print("%s 是 %s"%(name,gender_text))

(2) 提示

缺省參數(shù),需要使用最常見的值作為默認(rèn)值

如果一個(gè)參數(shù)的值不能確定,則不應(yīng)該設(shè)置默認(rèn)值,具體的數(shù)據(jù)在調(diào)用函數(shù)時(shí),由外界傳遞

(3) 缺省參數(shù)的注意事項(xiàng)

1.缺省參數(shù)的定義位置

必須保證帶有默認(rèn)值的缺省參數(shù)在參數(shù)列表的末尾

2.調(diào)用多個(gè)缺省參數(shù)的函數(shù)

在調(diào)用函數(shù)時(shí),如果有多個(gè)缺省參數(shù),需要指定參數(shù)名,這樣解釋器才能夠知道參數(shù)的對(duì)應(yīng)關(guān)系

多值參數(shù)

有時(shí)候可能需要一個(gè)函數(shù)能夠處理的參數(shù)個(gè)數(shù)是不確定的,這個(gè)時(shí)候,就可以使用多值參數(shù)

  • python中有兩種多值參數(shù):

參數(shù)名前增加一個(gè)* ,可以接收元組

參數(shù)名前增加兩個(gè)*,可以接受字典

  • 一般在給多值參數(shù)命名時(shí),習(xí)慣使用以下兩個(gè)名字:

*args----存放元組參數(shù)

**kwargs—存放字典參數(shù)

def demo(*args,**kwargs):
    print(args)
    print(kwargs)
demo(1,2,3,4,name="test1",age=14)

運(yùn)行結(jié)果:

(1, 2, 3, 4)
{'name': 'test1', 'age': 14}

可以看到1,2,3,4被組成了一個(gè)元組
name=“test1”,age=14,被組成了一個(gè)字典

#計(jì)算任意個(gè)數(shù)之和
def sum_args(*args):
    sum=0
    for n in args:
        sum+=n
    return sum
result=sum_args(1,2,3,4,6)
print(result)

元組和字典的拆包

在調(diào)用帶有多值參數(shù)的函數(shù)時(shí),如果希望:

將一個(gè)元組變量,直接傳遞給args

將一個(gè)字典變量,直接傳遞給kwargs

就可以使用拆包,簡(jiǎn)化參數(shù)的傳遞,拆包的方式是:

在元組變量前,增加一個(gè)*

在字典變量前,增加兩個(gè)**

#如果不拆包,將gl_args,gl_kwargs組成一個(gè)元組
def demo(*args,**kwargs):
    print(args)
    print(kwargs)

gl_args=(1,2,3,4)
gl_kwargs={"name":"test1","age":12}
demo(gl_args,gl_kwargs)

運(yùn)行結(jié)果:

((1, 2, 3, 4), {'name': 'test1', 'age': 12})
{}

如果不拆包,將gl_args,gl_kwargs組成一個(gè)元組,正確的傳遞方式應(yīng)該是:demo(1,2,3,4,name=“test”,“age”=12)

但是實(shí)參是元組和字典,需要將元素一個(gè)一個(gè)拆開,所以需要使用拆包

正確的使用方式:

def demo(*args,**kwargs):
    print(args)
    print(kwargs)
gl_args=(1,2,3,4)
gl_kwargs={"name":"test1","age":12}
demo(*gl_args,**gl_kwargs)

運(yùn)行結(jié)果:

(1, 2, 3, 4)
{'name': 'test1', 'age': 12}

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!  

相關(guān)文章

  • Python 網(wǎng)絡(luò)編程起步(Socket發(fā)送消息)

    Python 網(wǎng)絡(luò)編程起步(Socket發(fā)送消息)

    現(xiàn)在開始學(xué)習(xí)網(wǎng)絡(luò)編程,先從簡(jiǎn)單的UDP協(xié)議發(fā)送消息開始。我們需要有接受消息的服務(wù)端程序(Server.py)和發(fā)送消息的客戶端程序(Client)。
    2008-09-09
  • Python獲取圖片像素BGR值并生成純色圖

    Python獲取圖片像素BGR值并生成純色圖

    這篇文章主要介紹了利用Python獲取圖片像素BGR值,并將其生成純色圖。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-01-01
  • Python深入學(xué)習(xí)之上下文管理器

    Python深入學(xué)習(xí)之上下文管理器

    這篇文章主要介紹了Python深入學(xué)習(xí)之上下文管理器,上下文管理器是在Python2.5加入的功能,它能夠讓你的代碼可讀性更強(qiáng)并且錯(cuò)誤更少,和C#中的using語句類似,需要的朋友可以參考下
    2014-08-08
  • Python模擬伯努利試驗(yàn)和二項(xiàng)分布代碼實(shí)例

    Python模擬伯努利試驗(yàn)和二項(xiàng)分布代碼實(shí)例

    這篇文章主要介紹了Python模擬伯努利試驗(yàn)和二項(xiàng)分布代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Python編譯成.so文件進(jìn)行加密后調(diào)用的實(shí)現(xiàn)

    Python編譯成.so文件進(jìn)行加密后調(diào)用的實(shí)現(xiàn)

    今天小編就為大家分享一篇Python編譯成.so文件進(jìn)行加密后調(diào)用的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Pycharm中切換pytorch的環(huán)境和配置的教程詳解

    Pycharm中切換pytorch的環(huán)境和配置的教程詳解

    這篇文章主要介紹了Pycharm中切換pytorch的環(huán)境和配置,本文給大家介紹的非常詳細(xì),對(duì)大家的工作或?qū)W習(xí)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • tensorflow使用指定gpu的方法

    tensorflow使用指定gpu的方法

    TensorFlow是一個(gè)基于數(shù)據(jù)流編程(dataflow programming)的符號(hào)數(shù)學(xué)系統(tǒng),被廣泛應(yīng)用于各類機(jī)器學(xué)習(xí),這篇文章主要介紹了tensorflow使用指定gpu的方法,需要的朋友可以參考下
    2020-02-02
  • python簡(jiǎn)單直接獲取windows明文密碼操作技巧

    python簡(jiǎn)單直接獲取windows明文密碼操作技巧

    在實(shí)戰(zhàn)中,拿到一臺(tái)Windows服務(wù)器權(quán)限,如果可以直接獲取Windows明文密碼的話,就可以更容易深入挖掘。本文分享幾個(gè)獲取Windows明文密碼的技巧,簡(jiǎn)單直接且有效
    2021-10-10
  • Python設(shè)計(jì)模式之代理模式簡(jiǎn)單示例

    Python設(shè)計(jì)模式之代理模式簡(jiǎn)單示例

    這篇文章主要介紹了Python設(shè)計(jì)模式之代理模式,簡(jiǎn)單說明了代理模式的概念、原理,并結(jié)合Python實(shí)例形式分析了代理模式的相關(guān)定義與使用技巧,需要的朋友可以參考下
    2018-01-01
  • Pandas數(shù)據(jù)合并的兩種實(shí)現(xiàn)方法

    Pandas數(shù)據(jù)合并的兩種實(shí)現(xiàn)方法

    本文主要介紹了Pandas數(shù)據(jù)合并的兩種實(shí)現(xiàn)方法,DataFrame數(shù)據(jù)合并主要使用merge()方法和concat()方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11

最新評(píng)論