最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python自定義函數(shù)def的應用詳解

 更新時間:2020年06月03日 15:37:06   作者:叁歲學編程  
這篇文章主要介紹了python自定義函數(shù)def的應用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

這里是三歲,來和大家嘮嘮自定義函數(shù),這一個神奇的東西,帶大家白話玩轉自定義函數(shù)

自定義函數(shù),編程里面的精髓!

def

自定義函數(shù)的必要函數(shù):def

使用方法:

def 函數(shù)名(參數(shù)1,參數(shù)2,參數(shù)…):
  函數(shù)體(語句塊)
  return [返回值]

注意事項

  • 函數(shù)名的命名規(guī)則:和標識符的基本規(guī)則是一樣的,基本上由小寫字母和數(shù)字下劃線構成
  • def 是關鍵字,不能夠修改(define的簡稱)
  • 函數(shù)后面一定要加括號(英文狀態(tài)的)括號里面是否加參數(shù)看具體情況
  • 括號后面的冒號不能夠忘記
  • 函數(shù)體必須加上縮進(建議4個空格)

案例分析

def hello(): #自定義hello()函數(shù)
  print('hello world !')
  
hello() # 調(diào)用函數(shù)

hello world ! # 輸出結果

該處是定義了一個輸出‘hello world !'的函數(shù),只要調(diào)用hello()即可實現(xiàn)對函數(shù)體的調(diào)用。

來個復雜點的練練手,感受一下磨刀霍霍向木蘭

def add(x, y): # 新建add()
  return x+y

add(3, 7) # 調(diào)用add()

運行ing
輸出none

啊累累!啊累累!啊累累!
我寫了個bug還是寫了一個寂寞?

哦哦哦!我建了一個房子沒有留門(淚目)
沒有輸出怎么能夠有結果?

print(add(3, 7))
print(add('hello ', 'world'))

#運行結果
10
hello world

作死挑戰(zhàn)

記得每一次調(diào)用函數(shù)都加了 ()那么不加括號的是什么東西?

難道就是傳說中的寫了個寂寞還是什么東西?

讓我們一起來作死看看

print(hello) # 調(diào)用hello
print(add) # 調(diào)用add

結果:
<function hello at 0x0000020213737048>
<function add at 0x0000020213737678>

哇哦!他真的可以有
經(jīng)過查詢他顯示的是這個函數(shù)的內(nèi)存地址,而不是這個函數(shù)的結果什么的,函數(shù)并沒有被調(diào)用

  • 溫馨提示
  • 調(diào)用函數(shù)一定要在函數(shù)名后面加上括號

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

自定義函數(shù)的參數(shù),分為幾大類:

  • 位置傳參
  • 關鍵字傳參
  • 必選參數(shù)
  • 默認參數(shù)
  • 可變參數(shù)
  • ……

形參與實參

白話時間:(個人理解基礎的表達,如有不同之處請指教提出)
形參:
就是參數(shù)名稱,一個沒有被賦值的變量名,不會實際的參與函數(shù)的運算,而是起到一個類似占位符的作用。

實參:
實際參加函數(shù)運算的值,已經(jīng)賦值給了相對應的變量名。

ps:以上基于個人理解,本非準確表達,在個人理解基礎上的白話表達

位置參數(shù)

位置參數(shù)就是按照參數(shù)的位置進行表達和相對應的


參數(shù)寫的位置決定了它所對應的值,這種寫法如果有多個參數(shù)必須注意,寫錯位置整個函數(shù)有可能會報錯,整個程序有可能會奔潰!??!

關鍵字參數(shù)

關鍵字參數(shù)雖然寫法較為麻煩但是很好的解決了多個參數(shù)因為位置錯誤導致的函數(shù)報錯及程序不穩(wěn)定問題


通過定義的參數(shù)名稱來確定對應參數(shù)的值,可以有效的解決問題

例:print() 里面除了經(jīng)常用的輸出內(nèi)容還有end參數(shù)
end參數(shù)默認是‘\n',如果通過關鍵字參數(shù)進行重新定義就可以改變

for i in range(10):
  print(i)

結果:
0
1
2
3
4
5
6
7
8
9

for i in range(10):
  print(i,end= ' ')

結果:
0 1 2 3 4 5 6 7 8 9

默認參數(shù)

在函數(shù)涉及過程中很多參數(shù)不一定所有人一定用的上,可以設置一個默認值,這樣子需要的人可以DIY,沒有需要的就采用默認參數(shù)
比如print()中 end 就是默認參數(shù)默認值為‘\n'

def add(x=0, y=0):
  return x+y

print(add())

結果:
0

必選參數(shù)

必選參數(shù)就是必須要寫的參數(shù),這個與默認參數(shù)相對,不是默認參數(shù)就是必選參數(shù),如果沒有對必選參數(shù)進行導入就會引發(fā)報錯,導致系統(tǒng)函數(shù)奔潰

def add(x, y): # 新建add()
  return x+y
  
print(add())

Traceback (most recent call last):
  print(add())
TypeError: add() missing 2 required positional arguments: 'x' and 'y'

這個就是缺少x,y參數(shù)導致的異常。
所有在使用函數(shù)及自定義時要注意必選參數(shù)的設置

可變參數(shù)

可變參數(shù)這個名字比較高大上,但是實際上很簡單
比如要寫一個多個數(shù)字相加的函數(shù)怎么辦呢?
直接寫?

def add(x, y): # 新建add()
  return x+y

那如果是3個值呢?
會應為多了一個參數(shù)報錯
那么就改成三個參數(shù)?

def add(x, y, z): # 新建add()
  return x+y+z

問題來了如果是2個值那么就會報錯缺一個參數(shù),如果是4個及以上就會報錯,多了參數(shù)
啊啊啊啊啊啊啊啊??!
只是什么東西,難度python一世英名就毀在這里了嘛?

不不不!
神奇的事情發(fā)生了

def 函數(shù)名(參數(shù)1,參數(shù)2,參數(shù)…,*可變參數(shù)):
  函數(shù)體(語句塊)
  返回值

emmm,奇怪的知識增長了

def add(x, *y):
  for num in y:
    x += num
  return x

print(add(2,3,4))

結果
9

ps:*y 所產(chǎn)生的是一個tuple(元組)
我們需要先逐個遍歷才能夠拿到每一個的結果。

可變關鍵字參數(shù)

如果有多個關鍵字參數(shù)或者字典的導入使用 *參數(shù)名 無法滿足怎么辦
難道python一世英名就這樣子栽了嗎?
不不不
一個 * 不行那么就來兩個 **

def personinfo(name, age, **message):
  print(f'name:{name},age:{age},{message}')

personinfo('張三', 23, message = {'city':'北京', 'heigh': 180})

結果:
name:張三,age:23,{'message': {'city': '北京', 'heigh': 180}}

在里面得到的結果是一個字典,看例子可以知道得到了一個鑲嵌的字典

參數(shù)問題解答參數(shù)的書寫要求:
① 必選參數(shù)寫在最前面
②默認參數(shù)寫在必選參數(shù)后面
③默認參數(shù)后面是關鍵字參數(shù)
④關鍵字后面是*函數(shù)名(可變參數(shù))
⑤后面跟著可變關鍵字參數(shù)(**函數(shù)名)

ps:按照該順序走,沒有的可以不寫

def a(x , y=0, *z, **i):
  print(f'x:{x};y:{y};z:{z};i')

以上就是舉例子,命名方式不符合規(guī)定,不要借鑒
不安以上方式可能出現(xiàn)各種奇怪的情況

到此這篇關于python自定義函數(shù)def的應用詳解的文章就介紹到這了,更多相關python自定義函數(shù)def內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python學習之列表的運用

    python學習之列表的運用

    這篇文章主要介紹了python學習之列表的運用,文章首先通過創(chuàng)建列表展開列表運用的相關資料,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • Python與shell的3種交互方式介紹

    Python與shell的3種交互方式介紹

    這篇文章主要介紹了Python與shell的3種交互方式介紹,本文講解了os.system、os.popen、subprocess模塊等3種方法,需要的朋友可以參考下
    2015-04-04
  • Python with用法實例

    Python with用法實例

    這篇文章主要介紹了Python with用法實例,本文講解了with語句的幾種使用方法和使用場景,需要的朋友可以參考下
    2015-04-04
  • 詳解Python并發(fā)編程之創(chuàng)建多線程的幾種方法

    詳解Python并發(fā)編程之創(chuàng)建多線程的幾種方法

    這篇文章主要介紹了詳解Python并發(fā)編程之創(chuàng)建多線程的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • python 模塊重載的五種方法

    python 模塊重載的五種方法

    這篇文章主要介紹了python 模塊重載的五種方法,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-04-04
  • 簡單介紹Python虛擬環(huán)境及使用方法

    簡單介紹Python虛擬環(huán)境及使用方法

    Python的虛擬環(huán)境極大地方便了人們的生活.本文介紹了虛擬環(huán)境的基礎知識以及使用方法,文中有非常詳細的說明,需要的朋友可以參考下
    2021-06-06
  • 使用Python實現(xiàn)將PDF轉為PDF/A和PDF/X

    使用Python實現(xiàn)將PDF轉為PDF/A和PDF/X

    PDF/A和PDF/X是兩種有特定用途的PDF格式,本文主要介紹了如何使用Python將PDF轉換為PDF/A和PDF/X,以及如何將PDF/A格式轉換回標準的PDF格式,需要的可以參考下
    2024-04-04
  • python代碼如何實現(xiàn)切換中英文輸入法

    python代碼如何實現(xiàn)切換中英文輸入法

    這篇文章主要介紹了python代碼如何實現(xiàn)切換中英文輸入法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java分治歸并排序算法實例詳解

    Java分治歸并排序算法實例詳解

    這篇文章主要介紹了Java分治歸并排序算法,結合實例形式詳細分析了分治歸并排序算法的原理及java實現(xiàn)技巧,需要的朋友可以參考下
    2017-12-12
  • langchain中LLM模型使用詳解

    langchain中LLM模型使用詳解

    這篇文章主要為大家介紹了langchain中LLM模型使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08

最新評論

青龙| 乐亭县| 原阳县| 万源市| 敦煌市| 沙雅县| 察雅县| 满城县| 威信县| 隆回县| 张家港市| 武陟县| 无锡市| 陈巴尔虎旗| 新干县| 温州市| 西城区| 平利县| 沾化县| 文水县| 长武县| 于都县| 博湖县| 金溪县| 子长县| 东海县| 民乐县| 永兴县| 吉木萨尔县| 慈利县| 唐海县| 阳信县| 资中县| 香港| 乐至县| 彰武县| 双牌县| 昌宁县| 健康| 利辛县| 孝感市|