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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

函数基本语法及特性

發布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 函数基本语法及特性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我先復制了下面一段,挺有意思的。

背景提要

現在老板讓你寫一個監控程序,監控服務器的系統狀況,當cpu\memory\disk等指標的使用量超過閥值時即發郵件報警,你掏空了所有的知識量,寫出了以下代碼

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 while?True: ????if?cpu利用率 >?90%: ????????#發送郵件提醒 ????????連接郵箱服務器 ????????發送郵件 ????????關閉連接 ????? ????if?硬盤使用空間 >?90%: ????????#發送郵件提醒 ????????連接郵箱服務器 ????????發送郵件 ????????關閉連接 ????? ????if?內存占用 >?80%: ????????#發送郵件提醒 ????????連接郵箱服務器 ????????發送郵件 ????????關閉連接

上面的代碼實現了功能,但即使是鄰居老王也看出了端倪,老王親切的摸了下你家兒子的臉蛋,說,你這個重復代碼太多了,每次報警都要重寫一段發郵件的代碼,太low了,這樣干存在2個問題:

  • 代碼重復過多,一個勁的copy and paste不符合高端程序員的氣質
  • 如果日后需要修改發郵件的這段代碼,比如加入群發功能,那你就需要在所有用到這段代碼的地方都修改一遍
  • 你覺得老王說的對,你也不想寫重復代碼,但又不知道怎么搞,老王好像看出了你的心思,此時他抱起你兒子,笑著說,其實很簡單,只需要把重復的代碼提取出來,放在一個公共的地方,起個名字,以后誰想用這段代碼,就通過這個名字調用就行了,如下

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 def?發送郵件(內容) ????#發送郵件提醒 ????連接郵箱服務器 ????發送郵件 ????關閉連接 ????? while?True: ????? ????if?cpu利用率 >?90%: ????????發送郵件('CPU報警') ????? ????if?硬盤使用空間 >?90%: ????????發送郵件('硬盤報警') ????? ????if?內存占用 >?80%: ????????發送郵件('內存報警')

    ?

    你看著老王寫的代碼,氣勢恢宏、磅礴大氣,代碼里透露著一股內斂的傲氣,心想,老王這個人真是不一般,突然對他的背景更感興趣了,問老王,這些花式玩法你都是怎么知道的? 老王親了一口你兒子,捋了捋不存在的胡子,淡淡的講,“老夫,年少時,師從京西沙河淫魔銀角大王 ”, 你一聽“銀角大王”這幾個字,不由的嬌軀一震,心想,真nb,怪不得代碼寫的這么6, 這“銀角大王”當年在江湖上可是數得著的響當當的名字,只可惜后期縱欲過度,卒于公元2016年, 真是可惜了,只留下其哥哥孤守當年兄弟倆一起打下來的江山。 此時你看著的老王離開的身影,感覺你兒子跟他越來越像了。。

    ?

    函數的特性 

  • 減少重復代碼
  • 使程序變的可擴展
  • 使程序變得易維護
  • 函數的參數與局部變量

    形參變量只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只在函數內部有效。函數調用結束返回主調用函數后則不能再使用該形參變量

    實參可以是常量、變量、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使參數獲得確定值

    def test(x,y,z):print(x)print(y)print(z)test(1,2,3) #自動根據形參順序,與形參一一對應 test(x=1,z=2,y=3) #關鍵字參數,自動對應,與形參順序無關 test(1,z=5,y=16) #關鍵字參數需要全部在右邊,直接賦值可以打亂順序

    默認參數

    默認參數就是定義參數的時候,給形參賦值。

    自己看

    def test(x,y=3):print(x)print(y) test(1) test(1,y=5) test(1,5)

    ?

    1,特點,調用函數的時候,默認參數非必須傳遞

    2,用途,

      可以提前把一些值固定住,例如默認安裝值

      固定鏈接數據庫的端口號

    默認安裝值例子:

    ?

    默認端口號例子:

    ?

    ?

    返回值  

    要想獲取函數的執行結果,就可以用return語句把結果返回

    注意:

  • 函數在執行過程中只要遇到return語句,就會停止執行并返回結果,so 也可以理解為 return 語句代表著函數的結束
  • 如果未在函數中指定return,那這個函數的返回值為None?
  • def test1():print('in test1')def test2():print('in test2')return 1 def test3():print('in test3')return 1,'ad',['131','13231'],{'sanmao':'liulangji'} def test4():print('in test4')return test3 a=test1() b=test2() c=test3() d=test4() print(a) print(b) print(c) #return 元組 print(d) #返回test3的內存地址,如果test(4) return 'test3()'就是嵌套

    ?

    轉載于:https://www.cnblogs.com/PYlog/p/8623240.html

    總結

    以上是生活随笔為你收集整理的函数基本语法及特性的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。