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)
- python数据结构学习笔记-2016-11-23-01-归并排序
- Python学习笔记(11) -- (关键词:sorted/列表/字典/排序/键/值)
- 笨办法学python笔记:习题11 提问(input()函数使用)
- Python学习笔记11_IO编程
- 深入Python3 (Dive Into Python3)笔记11--文件
- 实习笔记 11:ZeroMQ研究 win7 X64+visual studio 2010+java server+python client
- < 笔记 > Python - 11 Python 进程和线程
- python学习笔记-(11)python中的文件相关
- Python学习笔记11:标准库之文件管理(os包,shutil包)
- python 学习笔记(11)XML文件
- python_笔记11_闭包(SSS)
- Python学习笔记之疑问11:批量赋值
- python学习笔记11:Access数据库转换为SQLite数据库
- 【深度学习】笔记11:python caffe报错:No module named google.protobuf.internal
- leetcode的python实现 刷题笔记28:实现strStr()
- 【Python】学习笔记——-11、进程和线程
- 28. Python脚本学习笔记二十八代码检测和分析
- ChartDirector 5.0 for python 笔记【11】Icon Pie Chart 上篇
- python 笔记 循环和列表 《笨办法学Python》习题32 ——1.6
- 1.5 python的数值和字符串 1.6 元组 1.7 列表