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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python11-28笔记(1.6-1.7)

發布時間:2023/12/10 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python11-28笔记(1.6-1.7) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.6 多類型傳值和冗余參數
多類型傳值:
比如def fun(x,y),定義2個形參
定義一個元組t=(1,2),如果把元組當做實參傳入到函數中,會報錯

如何將元組當做不同類型的參數傳入到函數中
fun(t) 代表傳入的是元組或者這樣調用
fun((1,2))
注意實參的個數要和形參一致,但是不能這樣傳入 fun(t,1) 這樣會語法錯誤
也可以這樣傳參 fun(x=1,y=2),但是要和形參定義的名字一致

字典傳參
dic={"x":1,"y":2,"z":3}
fun(dic) "" 代表傳入的參數是字典類型

錯誤 dic={'a':1,'n':2,'c':3}
fun(**dic) 這樣傳參也是錯誤的 字典的key值必須和函數形參定義的一致

冗余參數:(處理多余實參)
有時候傳入實參的時候傳入了更多的參數,需要處理。
def fun(x,*args,**kwargs): x是命名參數 后面2個可以不傳入實參
In [26]: fun(2,2)
2
(2,) 第二個參數傳入
{}

In [27]: fun(2,2,y=2) 第三個參數傳入字典的key和value
2
(2,)
{'y': 2}

總結,冗余參數會傳到元組里,默認參數(y=xx,c=xx)會傳到字典里,或者直接用**dic傳入字典

#!/usr/bin/python
#coding:utf-8
import os
x='/proc/'
def fun(x):
if x.isdigit():
return True
return False
def meminfo(y):
pwd= x+y+'/status'#獲取進程文件的路徑
with open(pwd) as damem:
for p_da in damem:#對每個進程內存累加并得出總內存和占比
if p_da.startswith('VmRSS'):
p_mem = p_da.split()[1]
p_mem = float(p_mem)
return p_mem

for i in os.listdir(x):
if fun(i):
if meminfo(i) > 0:
print '進程號:%s 占用內存:%s k'%(i, meminfo(i))

1.7 函數的遞歸調用
定義函數的時候,在函數體內調用自身叫做遞歸,通常用作階乘計算,也可以用循環來實現

循環實現:
#!/usr/bin/python
def factorial(n):
sum=1
for i in range(1,n+1):
sum *=i
return sum

print factorial(5)

遞歸調用有一個前提,不能一直無限調用下去,必須有一個結束遞歸的條件
遞歸調用
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)

print factorial(5)

必須有最后的默認結果
if n == 0
遞歸參數必須向默認結果收斂的:
factorial(n-1)

轉載于:https://blog.51cto.com/4833797/2323489

總結

以上是生活随笔為你收集整理的python11-28笔记(1.6-1.7)的全部內容,希望文章能夠幫你解決所遇到的問題。

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