在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

11個案例講解python函數(shù)參數(shù)

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-01 16:39 ? 次閱讀

python11個案例講解函數(shù)參數(shù)

1. 參數(shù)分類

函數(shù),在定義的時候,可以有參數(shù)的,也可以沒有參數(shù)。

從函數(shù)定義的角度來看,參數(shù)可以分為兩種:

必選參數(shù):調(diào)用函數(shù)時必須要指定的參數(shù),在定義時沒有等號

可選參數(shù):也叫默認(rèn)參數(shù),調(diào)用函數(shù)時可以指定也可以不指定,不指定就默認(rèn)的參數(shù)值來。

例如下面的代碼中,a 和 b 屬于必選參數(shù), c 和 d 屬于可選參數(shù)

def func(a,b,c=0, d=1):
    pass

從函數(shù)調(diào)用的角度來看,參數(shù)可以分為兩種:

關(guān)鍵字參數(shù):調(diào)用時,使用 key=value 形式傳參的,這樣傳遞參數(shù)就可以不按定義順序來。

位置參數(shù):調(diào)用時,不使用關(guān)鍵字參數(shù)的 key-value 形式傳參,這樣傳參要注意按照函數(shù)定義時參數(shù)的順序來。

def func(a,b,c=0, d=1):
    pass

  # 關(guān)鍵字參數(shù)傳參方法
func(a=10, c=30, b=20, d=40)

  # 位置參數(shù)傳參方法
func(10, 20, 30, 40)

最后還有一種非常特殊的參數(shù),叫做可變參數(shù)

意思是參數(shù)個數(shù)可變,可以是 0 個或者任意個,但是傳參時不能指定參數(shù)名,通常使用 *args**kw 來表示:

*args:接收到的所有按照位置參數(shù)方式傳遞進(jìn)來的參數(shù),是一個元組類型

**kw :接收到的所有按照關(guān)鍵字參數(shù)方式傳遞進(jìn)來的參數(shù),是一個字典類型

def func(*args, **kw):
    print(args)
    print(kw)

func(10, 20, c=20, d=40)

輸出如下

(10, 20)
{'c': 20, 'd': 40}

2. 十一個案例

案例一:在下面這個函數(shù)中, a 是必選參數(shù),是必須要指定的

>>> def demo_func(a):
...     print(a)
...
>>> demo_func(10)
10
>>> demo_func()  # 不指定會報錯
Traceback (most recent call last):
  File "", line 1, in 
TypeError: demo_func() missing 1 required positional argument: 'a'

案例二:在下面這個函數(shù)中,b 是可選參數(shù)(默認(rèn)參數(shù)),可以指定也可以不指定,不指定的話,默認(rèn)為10

>>> def demo_func(b=10):
...     print(b)
...
>>> demo_func(20)
20
>>> demo_func()
10

案例三:在下面這個函數(shù)中, name 和 age 都是必選參數(shù),在調(diào)用指定參數(shù)時,如果不使用關(guān)鍵字參數(shù)方式傳參,需要注意順序

>>> def print_profile(name, age):
...     return f"我的名字叫{name},今年{age}歲了"
...
>>> print_profile("王炳明", 27)
'我的名字叫王炳明,今年27歲了'

如果參數(shù)太多,你不想太花精力去注意順序,可以使用關(guān)鍵字參數(shù)方式傳參,在指定參數(shù)時附上參數(shù)名,比如這樣:

>>> print_profile(age=27, name="王炳明")
'我的名字叫王炳明,今年27歲了'

案例四:在下面這個函數(shù)中,args 參數(shù)和上面的參數(shù)名不太一樣,在它前面有一個 *,這就表明了它是一個可變參數(shù),可以接收任意個數(shù)的不指定參數(shù)名的參數(shù)。

>>> def demo_func(*args):
...     print(args)
...
>>>
>>> demo_func(10, 20, 30)
(10, 20, 30)

案例五:在下面這個函數(shù)中,kw 參數(shù)和上面的 *args 還多了一個 * ,總共兩個 ** ,這個意思是 kw 是一個可變關(guān)鍵字參數(shù),可以接收任意個數(shù)的帶參數(shù)名的參數(shù)。

>>> def demo_func(**kw):
...     print(kw)
...
>>> demo_func(a=10, b=20, c=30)
{'a': 10, 'b': 20, 'c': 30}

案例六:在定義時,必選參數(shù)一定要在可選參數(shù)的前面,不然運行時會報錯

>>> def demo_func(a=1, b):
...     print(a, b)
...
  File "", line 1
SyntaxError: non-default argument follows default argument
>>>
>>> def demo_func(a, b=1):
...     print(a, b)
...
>>>

案例七:在定義時,可變位置參數(shù)一定要在可變關(guān)鍵字參數(shù)前面,不然運行時也會報錯

>>> def demo_func(**kw, *args):
  File "", line 1
    def demo_func(**kw, *args):
                        ^
SyntaxError: invalid syntax
>>>
>>> def demo_func(*args, **kw):
...     print(args, kw)
...
>>>

案例八:可變位置參數(shù)可以放在必選參數(shù)前面,但是在調(diào)用時,必選參數(shù)必須要指定參數(shù)名來傳入,否則會報錯

>>> def demo_func(*args, b):
...     print(args)
...     print(b)
...
>>> demo_func(1, 2, 100)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: demo_func() missing 1 required keyword-only argument: 'b'
>>>
>>> demo_func(1, 2, b=100)
(1, 2)
100

案例九:可變關(guān)鍵字參數(shù)則不一樣,可變關(guān)鍵字參數(shù)一定得放在最后,下面三個示例中,不管關(guān)鍵字參數(shù)后面接位置參數(shù),還是默認(rèn)參數(shù),還是可變參數(shù),都會報錯。

>>> def demo_func(**kw, a):
  File "", line 1
    def demo_func(**kw, a):
                        ^
SyntaxError: invalid syntax
>>>
>>> def demo_func(**kw, a=1):
  File "", line 1
    def demo_func(**kw, a=1):
                        ^
SyntaxError: invalid syntax
>>>
>>> def demo_func(**kw, *args):
  File "", line 1
    def demo_func(**kw, *args):
                        ^
SyntaxError: invalid syntax

案例十:將上面的知識點串起來,四種參數(shù)類型可以在一個函數(shù)中出現(xiàn),但一定要注意順序

def demo_func(arg1, arg2=10, *args, **kw):
    print("arg1: ", arg1)
    print("arg2: ", arg2)
    print("args: ", args)
    print("kw: ", kw)

試著調(diào)用這個函數(shù),輸出如下:

>>> demo_func(1,12, 100, 200, d=1000, e=2000)
arg1:  1
arg2:  12
args:  (100, 200)
kw:  {'d': 1000, 'e': 2000}

案例十一:使用單獨的 *,當(dāng)你在給后面的位置參數(shù)傳遞時,對你傳參的方式有嚴(yán)格要求,你在傳參時必須要以關(guān)鍵字參數(shù)的方式傳參數(shù),要寫參數(shù)名,不然會報錯。

>>> def demo_func(a, b, *, c):
...     print(a)
...     print(b)
...     print(c)
...
>>>
>>> demo_func(1, 2, 3)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: demo_func() takes 2 positional arguments but 3 were given
>>>
>>> demo_func(1, 2, c=3)
1
2
3

3. 傳參的坑

函數(shù)參數(shù)傳遞的是實際對象的內(nèi)存地址。如果參數(shù)是引用類型的數(shù)據(jù)類型(列表、字典等),在函數(shù)內(nèi)部修改后,就算沒有把修改后的值返回回去,外面的值其實也已經(jīng)發(fā)生了變化。

>>> def add_item(item, source_list):
...     source_list.append(item)
...
>>> alist = [0,1]
>>> add_item(2, alist)
>>> alist
[0, 1, 2]

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1867

    瀏覽量

    32885
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4372

    瀏覽量

    64288
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

    86266
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    為什么不需要給回調(diào)函數(shù)傳遞參數(shù)

    回調(diào)函數(shù)是C語言里面一重要機(jī)制。
    的頭像 發(fā)表于 04-15 10:11 ?235次閱讀

    python入門圣經(jīng)-高清電子書(建議下載)

    和Pygal 等強大的Python 庫和工具介紹,以及列表、字典、if 語句、類、文件與異常、代碼測試等內(nèi)容; 第二部分將理論付諸實踐,講解如何開發(fā)三項目,包括簡單的Python
    發(fā)表于 04-10 16:53

    函數(shù)指針的六常見應(yīng)用場景

    函數(shù)指針在嵌入式開發(fā)中有著廣泛的應(yīng)用,它讓代碼更加靈活,減少冗余,提高可擴(kuò)展性。很多時候,我們需要根據(jù)不同的情況動態(tài)調(diào)用不同的函數(shù),而函數(shù)指針正是實現(xiàn)這一需求的重要工具。本文將介紹六
    的頭像 發(fā)表于 04-07 11:58 ?378次閱讀
    <b class='flag-5'>函數(shù)</b>指針的六<b class='flag-5'>個</b>常見應(yīng)用場景

    分享之前使用HarmonyOS NEXT Canvas做的動態(tài)GIF視頻的一個案例,沒有感情,全是技術(shù)。

    。這次分享一下之前使用HarmonyOS NEXT Canvas做的動態(tài)視頻的一個案例,沒有感情,全是技術(shù)。 開發(fā)準(zhǔn)備 開發(fā)流程與進(jìn)度 這次整體開發(fā)流程主要如下: 獲取圖片素材列表數(shù)據(jù),初始化視頻的幀數(shù)以及canvas畫布 繪畫視頻控制器,編寫視頻按幀數(shù)播放的功能 動態(tài)切換幀數(shù)
    的頭像 發(fā)表于 03-16 15:56 ?322次閱讀

    TimSort:一在標(biāo)準(zhǔn)函數(shù)庫中廣泛使用的排序算法

    排序算法呢? 本文將帶你走進(jìn) TimSort,一在標(biāo)準(zhǔn)函數(shù)庫中廣泛使用的排序算法。 這個算法由工程師 Tim Peters 于 2001 年專為 Python 設(shè)計,并自 Python
    的頭像 發(fā)表于 01-03 11:42 ?507次閱讀

    把YOLOv11Python Qt做個用戶界面程序

    早些時間,小編想把PID控制器優(yōu)化部分通過Py Qt來實現(xiàn)用戶界面化,不過看著窗口一堆參數(shù),有點發(fā)怵:這玩意誰用啊? 參考《PID控制器參數(shù)自動優(yōu)化示例和比較》 后來就擱置了。 在通過Python
    的頭像 發(fā)表于 11-28 10:18 ?1418次閱讀
    把YOLOv<b class='flag-5'>11</b>和<b class='flag-5'>Python</b> Qt做個用戶界面程序

    使用Python進(jìn)行串口通信的案例

    當(dāng)然!以下是一使用Python進(jìn)行串口通信的簡單示例。這個示例展示了如何配置串口、發(fā)送數(shù)據(jù)以及接收數(shù)據(jù)。我們將使用 pyserial 庫,這是一非常流行的用于串口通信的Python
    的頭像 發(fā)表于 11-22 09:11 ?1239次閱讀

    4G模組加解密藝術(shù):通用函數(shù)的深度解讀

    今天是對加解密通用函數(shù)的深度解讀,我將詳細(xì)講解,建議收藏,不可錯過。
    的頭像 發(fā)表于 11-12 09:58 ?572次閱讀
    4G模組加解密藝術(shù):通用<b class='flag-5'>函數(shù)</b>的深度解讀

    Python常用函數(shù)大全

    Python 世界里,有一些寶藏函數(shù)和模塊,它們可以讓你編程更輕松、代碼更高效。這篇文章將帶你一一認(rèn)識這些神器,讓你的開發(fā)生活瞬間輕松不少!
    的頭像 發(fā)表于 10-27 17:20 ?814次閱讀

    【每天學(xué)點AI】一例子帶你了解Python裝飾器到底在干嘛!

    進(jìn)行“加料”呢?Python裝飾器提供了一更為優(yōu)雅的方式來增強現(xiàn)有函數(shù)的行為,并且不需要修改現(xiàn)有的函數(shù)代碼及調(diào)用方式。接下來通過一個案例來
    的頭像 發(fā)表于 09-20 16:54 ?747次閱讀
    【每天學(xué)點AI】一<b class='flag-5'>個</b>例子帶你了解<b class='flag-5'>Python</b>裝飾器到底在干嘛!

    pytorch和python的關(guān)系是什么

    ,PyTorch已經(jīng)成為了一非常受歡迎的框架。本文將介紹PyTorch和Python之間的關(guān)系,以及它們在深度學(xué)習(xí)領(lǐng)域的應(yīng)用。 Python簡介 Python是一種高級、解釋型、通用
    的頭像 發(fā)表于 08-01 15:27 ?3110次閱讀

    python函數(shù)的萬能參數(shù)

    我們通過一簡單的事例來展示一下函數(shù)的萬能參數(shù),我們先寫一最簡單的函數(shù)
    的頭像 發(fā)表于 07-17 14:56 ?556次閱讀
    <b class='flag-5'>python</b><b class='flag-5'>函數(shù)</b>的萬能<b class='flag-5'>參數(shù)</b>

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一開源的計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發(fā)表于 07-16 10:38 ?1961次閱讀

    用pycharm進(jìn)行python爬蟲的步驟

    以下是使用PyCharm進(jìn)行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一流行的
    的頭像 發(fā)表于 07-11 10:11 ?1355次閱讀

    如何使用Python進(jìn)行神經(jīng)網(wǎng)絡(luò)編程

    神經(jīng)網(wǎng)絡(luò)簡介 神經(jīng)網(wǎng)絡(luò)是一種受人腦啟發(fā)的機(jī)器學(xué)習(xí)模型,由大量的節(jié)點(或稱為“神經(jīng)元”)組成,這些節(jié)點在網(wǎng)絡(luò)中相互連接。每個節(jié)點可以接收輸入,對輸入進(jìn)行加權(quán)求和,然后通過一激活函數(shù)產(chǎn)生輸出
    的頭像 發(fā)表于 07-02 09:58 ?709次閱讀
    主站蜘蛛池模板: 赛罗奥特曼银河帝国普通话免费版 | 亚洲一级毛片免费观看 | 在线观看免费观看 | 人人草人人爽 | sis色中色 | 深夜视频在线免费 | 永久免费av网站 | 午夜黄网站 | 黄黄网站| 亚洲色啦啦狠狠网站 | 色婷婷久久合月综 | 美女扒开尿口给男人看大全 | 国产精品入口免费视频 | 日韩精品一卡二卡三卡四卡2021 | 国产三级一区 | 国产偷窥女洗浴在线观看亚洲 | 四虎影库网址 | 亚洲欧美强伦一区二区另类 | 免费在线观看理论片 | 狠狠色噜噜狠狠狠狠999米奇 | 天天射综合网站 | 免费一级成人毛片 | 欧美又粗又长又湿又黄的视频 | 免费人成年短视频在线观看免费网站 | 欧美伊人久久大香线蕉综合69 | www.天天干.com| 日韩欧美卡通动漫在线观看 | 免费一级做a爰片久久毛片 免费一看一级毛片 | 4438全国最大成人免费高清 | 日本一区二区三区免费看 | 夜夜网站 | 国产精品福利午夜在线观看 | 久久久久久91精品色婷婷 | 高清成年美女黄网站色大 | 欧美ab在线 | 天天做夜夜做 | 亚欧成人乱码一区二区 | jizjizjizjiz日本护士出水 | 欧美四色 | 天天操天天碰 | 国产福利乳摇在线播放 |