色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python-函數的進階與遞歸

汽車電子技術 ? 來源:程序猿知秋 ? 作者: 程序猿知秋 ? 2023-02-16 15:19 ? 次閱讀

函數的返回值

返回值

  • 在程序開發中,有時候,會希望一個函數執行結束后,告訴調用者 一個結果 ,以便調用者針對結果作后續的處理
  • **返回值 **是函數 完成工作后,最后給調用者的一個結果
  • 在函數中使用 **return **關鍵字可以返回結果
  • 調用者 可以使用變量 來接收函數的返回結果

**返回值示例

**

# 單返回值示例
def test1():
  name="zs"
  return name


n=test1()
print("名字是:%s" %n)




# 多返回值,返回元組
def test2():
  name="zs"
  age=12
  return name,age


n,a=test2()
print("名字是:%s,年齡是:%d" %(n,a))


#第二種返回值接收形式
result=test2()
print(result)
print("名字是:%s,年齡是:%d" %(result[0],result[1]))




# 多返回值,返回元組2,與上一個函數返回的結果是一樣的
def test3():
  name="zs"
  age=12
  return (name,age)
n,a=test3()
print("名字是:%s,年齡是:%d" %(n,a))

輸出結果

圖片

交換變量的值

a=100
b=10


# 形式一
b,a=a,b
print(b,a)


# 形式二,注: 其實兩種方式是一樣的,只是看起來一個加了括號一個沒加,但其實后面都是用的元組
b,a=(a,b)
print(b,a)

函數的參數

不可變與可變參數

  • 在函數內部,針對參數使用 賦值語句 ,不會影響調用函數時傳遞的 實參變量
  • 不管是可變還是不可變類型的參數,針對參數使用 ** 賦值語句** ,會在 函數內部修改局部變量的引用 ,不會影響 外部變量的引用
  • 當參數是** 可變類型**時,在函數內部,使用 方法 修改了數據的內容,會影響到外部的數據

示例

# 可變與不可變類型參數,使用賦值語句 不會影響外部調用時的 變量
def test1(num,num_list):
  num=10
  num_list=[4,5,6]
  print("函數內部num值:%d" %num)
  print("函數內部num_list值:",num_list)


gl_num=3
gl_num_list=[1,2,3]
test1(gl_num,gl_num_list)
print("函數外部num值:%d" %gl_num)
print("函數外部num_list值:",gl_num_list)




# 可變類型的參數,使用 方法賦值,會影響外部調用時的 變量
def test2(num_list):
  # 形式一
  num_list.append(9)
  # 形式二
  num_list.extend([2,2,2])
  # 形式三(默認使用的也是 extend)
  num_list+=[3,3,3]
  print("函數內部調用后的值是:",num_list)


gl_num_list2=[1,1,1]
test2(gl_num_list2)
print("函數外部調用后的值是:",gl_num_list2)

輸出結果

圖片

缺省參數

  • 定義函數時,可以給 **某個參數 **指定一個 默認值 ,具有默認值的參數就叫 缺省參數
  • 調用函數時,如果沒有傳入缺省參數的值,則在函數內部會使用 參數的默認值
  • 函數的缺省參數,將常見的值設置為參數的缺省值,從而 簡化函數的調用
  • 缺省參數的定義位置,應該放在參數列表的末尾
  • 如果有 ** 多個缺省參數,調用時需要指定參數名,** 這樣解釋器才能知道參數的對應關系
def test1(name,work="工程師",gender="男"):
  print("名字是:%s,職位是:%s,性別是:%s" %(name,work,gender))


test1("張三",gender="女")
test1("李四",work="設計師")
test1("王五",work="設計師",gender="人妖")

輸出結果

圖片

多值參數

  • 參數名前增加一個** * 可以接收 元組**

  • 參數名前增加 兩個** * 可以接收 字典**

  • 一般在給多值參數命名時,習慣使用以下兩個名字

    • ***args 存放 元組 參數,前面有一個 ***
    • ****kwargs 存放 字典 參數,前面有兩個 ***
  • args 是 arguments 的縮寫,有變量的含義

  • **kw 是 keyword 的縮寫,kwargs 可以記憶 鍵值對參數

    **

示例

# 測試普通參數,元組,字典傳參
def test(num,*args,**kwargs):
  print(num)
  print(args)
  print(kwargs)




test(1,2,3,4,5,nmae="zs",age="12")

輸出結果

圖片

**元組和字典的拆包

**

  • 在調用帶有多值參數的函數時,如果希望:
    • 將一個 元組變量,直接傳遞給 args
    • 將一個 字典變量,直接傳遞給 kwargs
  • 就可以使用 ** 拆包,** 簡化參數的傳遞,拆包的方式是**:**
    • 在 元組變量前**,增加一個 ***

    • 在 字典變量前**,增加兩個 *

      **

示例

def test(*args,**kwargs):
  print(args)
  print(kwargs)


# 不使用拆包
test(1,2,3,name="zs",age=12)


# 使用拆包
t_tuple=(1,2,3)
d_dict={"name":"zs","age":12}
test(*t_tuple,**d_dict)

**輸出結果

**

圖片

遞歸

  • 一個函數,內部自己調用自己
  • 當 參數滿足一個條件時,函數不再執行,這個非常重要,通常被稱為 遞歸的出口,否則 就會出現 死循環

示例

# 使用遞歸 計算累加  1+2+3....num
def sum_num(num):
  # 定義出口
  if num==1:
    return 1


  tmp=sum_num(num-1)
  return num+tmp


total=sum_num(10)
print("累加的值是:",total)

輸出結果

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4353

    瀏覽量

    63292
  • 程序開發
    +關注

    關注

    0

    文章

    30

    瀏覽量

    10381
  • Return
    +關注

    關注

    0

    文章

    9

    瀏覽量

    7684
收藏 人收藏

    評論

    相關推薦

    快速掌握Python遞歸函數與匿名函數調用

    函數Python技術學習中重要的一個環節,深入掌握該階段的知識內容,對于Python技術能力的提升非常有幫助,這里就針對遞歸函數與匿名
    發表于 07-19 16:22

    Labview遞歸函數的使用案例

    Labview遞歸函數的使用案例,簡單的1+2+3...+100求和,簡單易懂,充分理解遞歸函數的思想
    發表于 10-09 09:37

    請問python-樹莓派如何通過按鍵控制步進電機正反轉?

    步進電機驅動原理是什么?python-樹莓派如何通過按鍵控制步進電機正反轉?
    發表于 10-09 08:45

    C++教程之函數遞歸調用

    C++教程之函數遞歸調用 在執行函數 f 的過程中,又要調用 f 函數本身,稱為函數遞歸調
    發表于 05-15 18:00 ?35次下載

    python-控制khr3hv-master機器人

    python-控制khr3hv機器人,感興趣的小伙伴們可以瞧一瞧。
    發表于 11-22 15:40 ?2次下載

    遞歸指的是在函數的定義中使用函數自身的方法

    C語言支持遞歸,即一個函數可以調用其自身。但在使用遞歸時,程序員需要注意定義一個從函數退出的條件,否則會進入死循環。遞歸
    的頭像 發表于 11-12 15:06 ?7250次閱讀

    C++的實驗教程之函數遞歸算法資料免費下載

    函數遞歸算法 1.范例:求組合數, 一、實驗目的1. 學會解決簡單的遞歸算法。2. 掌握函數的嵌套調用。
    發表于 01-29 10:51 ?2次下載
    C++的實驗教程之<b class='flag-5'>函數</b>的<b class='flag-5'>遞歸</b>算法資料免費下載

    進階必備的68個Python 內置函數分析

    來源: pypypypy 內置函數就是Python給你提供的,拿來直接用的函數,比如print.,input等。 截止到python版本3.6.2 ,
    的頭像 發表于 11-01 10:18 ?4201次閱讀

    C語言-內聯函數遞歸函數、指針函數

    這篇文章介紹C語言的內聯函數遞歸函數函數指針、指針函數、局部地址、const關鍵字、extern關鍵字等知識點;這些知識點在實際項目開發
    的頭像 發表于 08-14 10:03 ?1783次閱讀

    Python-函數

    所謂函數,就是把 **具有獨立功能的代碼塊** 組織為一個小模塊,在需要的時候調用
    的頭像 發表于 02-16 14:54 ?815次閱讀

    Python-變量的引用與可變

    變量和數據都是保存在內存中的,在Python中,函數的參數傳遞和返回值都是靠引用傳遞的
    的頭像 發表于 02-16 15:15 ?916次閱讀
    <b class='flag-5'>Python-</b>變量的引用與可變

    Python支持遞歸函數

    Python支持遞歸函數——即直接或間接地調用自身以進行循環的函數遞歸是頗為高級的話題,并且它在Pyt
    的頭像 發表于 02-21 14:28 ?701次閱讀

    函數遞歸-3

    程序調用自身的編程技巧稱為遞歸(recursion)。遞歸作為一種算法在程序設計語言中廣泛應用。一個過程或函數在其定義或說明中有直接或間接調用自身的一種方法,它通常把一個大型復雜的問題層層轉化為一個
    的頭像 發表于 02-21 15:57 ?654次閱讀

    什么是Python遞歸函數

    遞歸函數必須有終止條件。編程中,函數的調用要占用名叫棧(stack)的內存空間。調用函數時,程序會將相關的數據存儲到計算機的棧里。
    的頭像 發表于 02-23 10:25 ?1952次閱讀

    Python遞歸的經典案例

    當我們碰到諸如需要求階乘或斐波那契數列的問題時,使用普通的循環往往比較麻煩,但如果我們使用遞歸時,會簡單許多,起到事半功倍的效果。這篇文章主要和大家分享一些和遞歸有關的經典案例,結合一些資料談一下個人的理解,也借此加深自己對遞歸
    的頭像 發表于 08-05 15:57 ?437次閱讀
    主站蜘蛛池模板: 国产 亚洲 中文在线 字幕 | 看 视频一一级毛片 | 97超级碰久久久久香蕉人人 | 欧美人与禽zoz0性伦交app | 国产精品国产三级国产AV麻豆 | 黄色大片久久 | 魅男mangay | 扒开小处30p| 欧美久久无码AV麻豆 | 嘟嘟嘟在线视频免费观看高清中文 | 一边吃奶一边添P好爽故事 一边吃奶一边啪啪真舒服 一本之道加勒比在线观看 一本之道高清在线观看一区 | 花蝴蝶在线观看免费中文版高清 | 泡妞高手在都市完整版视频免费 | 首页_亚洲AV色老汉影院 | 久久99精品国产99久久6男男 | 男人狂躁进女人免费视频公交 | 学生无码AV一区二区三区 | 九九热久久只有精品2 | 欧美大jiji | 快播欧美大片 | 国产精品第九页 | 国产精品一区二区四区 | 亚洲欧美日本久久综合网站 | 国产成人免费a在线资源 | 色尼姑久久超碰在线 | 3d无遮挡h肉动漫在线播放 | 亚洲欧美一区二区三区导航 | 国产乱码一区二区三区 | 美女与男人对肌免费网站 | 国产成人在线视频 | 亚洲欧美一区二区三区蜜芽 | 伦理片在线线手机版韩国免费6 | 在线免费观看国产 | 亚洲日韩欧美国产中文在线 | 美女洗澡脱得一二干净 | 色 花 堂 永久 网站 | 美女强奷到抽搐在线播放 | 美国69xxxx59| 中文字幕精品视频在线 | 回复术士人生重启在线观看 | 色综合伊人色综合网站 |