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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python函数分为_python 函数

發(fā)布時(shí)間:2025/3/20 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python函数分为_python 函数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、為什么要有函數(shù)?沒(méi)有函數(shù)的困擾

1.組織結(jié)構(gòu)不清晰,可讀性差

2.代碼冗余

3.可擴(kuò)展性差

二、什么是函數(shù)

具備某一個(gè)功能的工具---》》函數(shù)事先準(zhǔn)備工具-》函數(shù)的定義拿來(lái)就用,重復(fù)使用-》函數(shù)的調(diào)用

ps:先定義后調(diào)用

三、函數(shù)的分類(lèi):

內(nèi)置函數(shù):len,max;自定義函數(shù):def

def 函數(shù)名():

代碼塊1...

代碼塊2...

定義階段:定義一個(gè)簡(jiǎn)單的函數(shù)

deftest():print('你好')

在這個(gè)階段要保證語(yǔ)法的正確性,因?yàn)榇穗A段只檢查語(yǔ)法格式

調(diào)用階段:

test()

運(yùn)行結(jié)果:

如果test后邊不加()

print(test)

則會(huì)打印test的內(nèi)存地址:

所以,只要內(nèi)存地址后邊加 () ,就是調(diào)用結(jié)果

1)函數(shù)種類(lèi):

第一種:無(wú)參函數(shù)

deftest():print('你好')

test()

第二種:有參函數(shù)

def test(name,age=18):      #有參函數(shù)可以設(shè)置默認(rèn)值

print('my name is %s,my age is %s' %(name, age))

test('aaa',12)           #有參函數(shù)默認(rèn)調(diào)用默認(rèn)的值,如果不傳參數(shù),調(diào)用默認(rèn)值,如果傳參數(shù),默認(rèn)值被修改

第三種:空函數(shù)

deftest():pass

空函數(shù)主要用于占位,搭思路框架

2)函數(shù)的參數(shù)分為兩種

形參:在定義階段括號(hào)內(nèi)指定的參數(shù),相當(dāng)于變量名

實(shí)參:在調(diào)用階段括號(hào)內(nèi)傳入的值稱(chēng)之為實(shí)參,相當(dāng)于值

返回值:函數(shù)可以有多個(gè)return,但是只能執(zhí)行一次return

執(zhí)行return函數(shù)就立刻結(jié)束,并且return后的值當(dāng)做本次調(diào)用結(jié)果返回

deftest(age):if age < 18:print('aaaaa')return '青春!'

print('gggggg')print('gggggg')return '哈哈哈'result= test(17)print(result)

運(yùn)行結(jié)果:

return 與print 區(qū)別

deftest():return 'aaa'result= test()

deftest():print('aaa')

test()

return函數(shù)結(jié)果可以被調(diào)用,print 無(wú)法被調(diào)用

3)psutil模塊(系統(tǒng)性能檢測(cè))

第三方模塊需要安裝

然后搜索需要安裝的模塊,install 即可

查看cpu的邏輯核心數(shù),以及實(shí)際核心數(shù)(False)

import psutil #導(dǎo)入之后就可以用了

res = psutil.cpu_count() #不加false默認(rèn)是邏輯cpu個(gè)數(shù)

print(res)

運(yùn)行結(jié)果:

查看cpu的使用率,以及每一核心的使用率(True)

importpsutil

res= psutil.cpu_percent(1) #1秒內(nèi)cpu的使用率

print(res)

運(yùn)行結(jié)果:

查看內(nèi)存使用率

importpsutil

res= psutil.virtual_memory() #內(nèi)存使用率信息

print(res)

運(yùn)行結(jié)果:

若只取百分比'%.2f%%',添加%號(hào)

importpsutil

res= psutil.virtual_memory()#內(nèi)存使用率信息

print('%.2f%%' % res[2])

運(yùn)行結(jié)果:

查看硬盤(pán)使用情況

importpsutil

res= psutil.disk_usage('C:')  #硬盤(pán)分區(qū)的使用率

print(res)

運(yùn)行結(jié)果:

若在Linux系統(tǒng)中,也可以把C盤(pán)換成/root/等目錄進(jìn)行查看

查看網(wǎng)絡(luò)流量

importpsutil

res= psutil.net_io_counters()#查看網(wǎng)絡(luò)流量

print(res)

運(yùn)行結(jié)果:

分別代表:發(fā)送的流量;接收的流量;包的發(fā)送;包的接受;錯(cuò)誤;錯(cuò)誤輸出;混入;中途丟失

練習(xí):監(jiān)控

項(xiàng)目:監(jiān)控cpu,內(nèi)存,硬盤(pán),網(wǎng)卡流量的情況,并報(bào)警發(fā)郵件

思想:先搭框架,在逐個(gè)填寫(xiě)優(yōu)化

defcpu_info():pass

defmem_info():pass

defdisk_info():pass

defnetwork_info():pass

defsend_mail():pass

實(shí)際服務(wù)的搭建:

import psutil    #調(diào)用psutil模塊

import smtplib    #調(diào)用smtplib模塊

from email.mime.text import MIMEText    #郵件固定格式

from email.header importHeaderdef cpu_info():    #cpu函數(shù)

cpu = '%.2f%%' % psutil.cpu_percent(1)    #1秒內(nèi)cpu使用率,加%

returncpudef mem_info():    #內(nèi)存函數(shù)

mem = psutil.virtual_memory()    #內(nèi)存使用的整體情況

mem_per = '%.2f%%' % mem[2]    #內(nèi)存使用率,加%

mem_total = str(int(mem[0]/1024/1024)) + 'M'    #總內(nèi)存

mem_used = str(int(mem[3]/1024/1024)) + 'M'    #已使用內(nèi)存

info = {    #建立鍵值對(duì),方便調(diào)用

'mem_per': mem_per,'mem_total': mem_total,'mem_used': mem_used

}returninfodef disk_info():    #硬盤(pán)函數(shù)

c = psutil.disk_usage('C:')    #C盤(pán)使用情況

d = psutil.disk_usage('D:')    #D盤(pán)使用情況

c_per = '%.2f%%' % c[3]    #C盤(pán)使用率,加%

d_per = '%.2f%%' % d[3]    #D盤(pán)使用率,加%

info ={'c_per': c_per,'d_per': d_per

}returninfodef network_info():    #網(wǎng)卡函數(shù)

network = psutil.net_io_counters()    #網(wǎng)卡使用情況

network_sent = str(int(network[0]/1024)) + 'kb'    #網(wǎng)卡發(fā)送的流量

network_recv = str(int(network[1]/1024)) + 'kb'    #網(wǎng)卡接收的流量

info ={'network_sent': network_sent,'network_recv': network_recv

}returninfodef send_mail(message):    #郵件函數(shù)

sender = 'aaaaaaa@163.com'    #以下所有郵箱設(shè)置為自己的即可

receiver = ['aaaaaaa@163.com']

subject= '報(bào)警'username= 'aaaaaaa@163.com'password= 'xxxxxx'    #163郵箱在此需要輸入的是第三方登錄密碼

msg = MIMEText(message, 'plain', 'utf-8')

msg['Subject'] = Header(subject, 'utf-8')

msg['From'] = 'aaaaaaa@163.com>'msg['To'] = "aaaaaaa@163.com"smtp=smtplib.SMTP()

smtp.connect('smtp.163.com')    #跟所使用的郵箱所匹配

smtp.login(username, password)

smtp.sendmail(sender, receiver, msg.as_string())

smtp.quit()def main():    #主函數(shù)

cpu = cpu_info()    #調(diào)用之前函數(shù)

mem =mem_info()

disk=disk_info()

network=network_info()

msg= '''#設(shè)置一個(gè)變量整合所有需要監(jiān)控的元素

cpu使用率:%s

=============

內(nèi)存使用率:%s

總內(nèi)存:%s

使用內(nèi)存:%s

=============

C盤(pán)使用率:%s

D盤(pán)使用率:%s

=============

網(wǎng)卡發(fā)送流量:%s

網(wǎng)卡接收流量:%s''' % (cpu, mem.get('mem_per'), mem.get('mem_total'), mem.get('mem_used'), disk.get('c_per'), disk.get('d_per'), network.get('network_sent'), network.get('network_recv'))if int(cpu[:-4]) > 1 or int(mem.get('mem_per')[:-4]) > 20 or int(disk.get('c_per')[:-4]) > 90 or int(disk.get('d_per')[:-4]) > 90:#這里設(shè)置了cpu,內(nèi)存,C盤(pán),D盤(pán)的報(bào)警界限為90%

send_mail(msg)else:print('沒(méi)到閾值')if __name__ == '__main__':     #其他端無(wú)法調(diào)用以下

main()

總結(jié)

以上是生活随笔為你收集整理的python函数分为_python 函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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