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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

函数和常用模块【day04】:函数参数及调用(二)

發(fā)布時間:2024/8/26 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 函数和常用模块【day04】:函数参数及调用(二) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本節(jié)內(nèi)容

1、為什么要有參數(shù)

2、返回值

3、有參數(shù)函數(shù)調(diào)用

一、為什么要有參數(shù)?

無參數(shù)實現(xiàn)

def CPU報警郵件()#發(fā)送郵件提醒連接郵箱服務器發(fā)送郵件關閉連接def 硬盤報警郵件()#發(fā)送郵件提醒連接郵箱服務器發(fā)送郵件關閉連接def 內(nèi)存報警郵件()#發(fā)送郵件提醒連接郵箱服務器發(fā)送郵件關閉連接while True:if cpu利用率 > 90%:CPU報警郵件()if 硬盤使用空間 > 90%:硬盤報警郵件()if 內(nèi)存占用 > 80%:內(nèi)存報警郵件()

有參數(shù)實現(xiàn)

def 發(fā)送郵件(郵件內(nèi)容)#發(fā)送郵件提醒連接郵箱服務器發(fā)送郵件關閉連接while True:if cpu利用率 > 90%:發(fā)送郵件("CPU報警了。")if 硬盤使用空間 > 90%:發(fā)送郵件("硬盤報警了。")if 內(nèi)存占用 > 80%:發(fā)送郵件("內(nèi)存報警了。")

二、返回值

之前在day3-函數(shù)介紹中提到了return關鍵字,但是那個只是提到,并沒有詳細的介紹的return關鍵字的用法,下面我們就來詳細的闡述一下。

1、return作用

  return其實有兩個作用:

需要用一個變量來接受程序結束后返回的結果
它是作為一個結束符,終止程序運行

def test():print("in the test_1")return 0print("the end") #結果中沒有打印x = test() print(x)#輸出 in the test_1 #第一次打印 0 #結果返回值

注:從上面的代碼可以看出,return 0后面的代碼就不執(zhí)行了,只執(zhí)行return前面的代碼;變量x接受了test()函數(shù)結束后的返回結果

2、返回多個值

  上面我們試了返回一個常量值,或者說一個對象值,下面我們來試試,不返回值,或者說返回多個值得情況
從上面的例子可以看出:

# __auther__ == luoahongdef test_1():print("in the test_1")def test_2():print("in the test_2")return 0def test_3():print("in the test_3")return 1,"hello",["xiedi","shuaigao"],{"name":"xiedi"}x = test_1() y = test_2() z =test_3() print(x) print(y) print(z)#輸出 in the test_1 in the test_2 in the test_3 None #x的值 0 #y的值 (1,"hello",["xiedi","shuaigao"],{"name":"xiedi"}) #z的值 

沒有定義,返回值數(shù)=0,返回:None
只定義了1個返回值,返回值=1 ,返回:定義的那個值,或者說定義的那個object
定義了2個以上,返回值 > 1,返回:1個元組(tuple)
提問:這邊我們不經(jīng)意的要問,為什么要有返回值?

因為我們想要想要這個函數(shù)的執(zhí)行結果,這個執(zhí)行結果會在后面的程序運行過程中需要用到。

三、有參數(shù)函數(shù)調(diào)用

 在此之前,我們演示的函數(shù)都是沒有帶參數(shù)的,下面我們就來說說帶參數(shù)的函數(shù)。在講之前,我們先來說一下,什么是形參,什么是實參吧!

形參:指的是形式參數(shù),是虛擬的,不占用內(nèi)存空間,形參單元只有被調(diào)用的時才分配內(nèi)存單元
實參:指的是實際參數(shù),是一個變量,占用內(nèi)存空間,數(shù)據(jù)傳遞單向,實參傳給形參,形參不能傳給實參
代碼如下:

1、位置參數(shù)

從上面的例子可以看出,實際參數(shù)和形式參數(shù)是一一對應的,如果調(diào)換位置,x和y被調(diào)用的時,位置也會互換,代碼如下:
那有些同學會說,那我多一個或者少一個參數(shù),總歸沒事了吧!那我看看行不行呢?

①多一個參數(shù)

def test(x,y):print(x)print(y) print("--------多一個參數(shù)----") test(1,2,3)#輸出 --------多一個參數(shù)---- Traceback (most recent call last):File "D:/PycharmProjects/pyhomework/day3/函數(shù)_帶參數(shù).py", line 8, in <module>test(1,2,3) TypeError: test() takes 2 positional arguments but 3 were given #test()函數(shù)需要傳兩個實參,你傳了三個實參

②少一個參數(shù)

def test(x,y):print(x)print(y) print("--------少一個參數(shù)----") test(1)#輸出 --------少一個參數(shù)---- Traceback (most recent call last):File "D:/PycharmProjects/pyhomework/day3/函數(shù)_帶參數(shù).py", line 8, in <module>test(1) TypeError: test() missing 1 required positional argument: 'y' #沒有給y參數(shù)傳實參

2、關鍵字參數(shù)

 到這邊有些小伙伴不經(jīng)意的要說,像這種位置參數(shù),有點死,我不想這么干,萬一我傳錯了咋辦,對吧!OK,沒有問題,下面我們就來講講關鍵字傳參。

 關鍵字傳參不需要一一對應,只需要你指定你的哪個形參調(diào)用哪一個實參即可,代碼如下:

def test(x,y):print(x)print(y)print("--------互換前------") test(x=1,y=2) print("--------互換后------") test(y=2,x=1)#輸出 --------互換前------ 1 2 --------互換后------ 1 2

但是,這是又有小伙伴要問了,那我可不可以位置參數(shù)和關鍵字參數(shù)結合起來用吶?接下來,我們就來探討一下。

①位置參數(shù)在前,關鍵字參數(shù)在后

def test(x,y):print(x)print(y)test(1,y=2)#輸出 1 2

我擦這樣是可以的,那我試試這種情況,我把后面關鍵字不傳給y,我傳給x,代碼如下:

def test(x,y):print(x)print(y)test(1,x=2)#輸出 Traceback (most recent call last):File "D:/PycharmProjects/pyhomework/day3/函數(shù)_帶參數(shù).py", line 8, in <module>test(1,x=2) TypeError: test() got multiple values for argument 'x' #給x形參傳的值過多

報錯的意思是:給形參x傳的值過多。這種報錯的原因是:實參1已經(jīng)傳給了形參x,后面的x=2又傳了一次,所以報錯。

②關鍵字在前,位置參數(shù)在后

def test(x,y):print(x)print(y)test(y=2,1)#輸出 File "D:/PycharmProjects/pyhomework/day3/函數(shù)_帶參數(shù).py", line 8test(y=2,1)^ SyntaxError: positional argument follows keyword argument # 關鍵字參數(shù)在位置參數(shù)的前面

我去,看來這樣不行。那我位置參數(shù)放前面,中間放關鍵字參數(shù)總行了吧!代碼如下:

def test(x,y,z):print(x)print(y)test(1,y=2,3)#輸出File "D:/PycharmProjects/pyhomework/day3/函數(shù)_帶參數(shù).py", line 8test(1,y=2,3)^ SyntaxError: positional argument follows keyword argument

還是一樣的錯誤,我去,那我只能把關鍵字參數(shù)放最后試試!

def test(x,y,z):print(x)print(y)print(z)test(1,2,z=3)#輸出 1 2 3

那我最后兩個用關鍵字參數(shù)吶?

def test(x,y,z):print(x)print(y)print(z)test(1,z=2,y=3)#輸出 1 3 2

總結:

既有關鍵字,又有位置參數(shù)時,是按位置參數(shù)的順序來
關鍵字參數(shù)是不能寫在位置參數(shù)的前面的

轉載于:https://www.cnblogs.com/luoahong/p/9889426.html

總結

以上是生活随笔為你收集整理的函数和常用模块【day04】:函数参数及调用(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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