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)相关推荐
- 贺利坚老师汇编课程28笔记:使用附加段寄存器ES进行拷贝
指路老师的博客链接 将内存FFFF:0 ~ FFFF:B中的数据拷贝到0:200~0:20b单元中 段地址每循环一次变一次的初始方案 ;初始方案 ASSUME CS:CODE CODE SEGMENT ...
- 贺利坚老师汇编课程28笔记:在代码段使用数据加个标号start
指路老师的博客 编程计算以下8个数据的和,结果存放在AX寄存器里中 第一版代码 ASSUME CS:CODE CODE SEGMENT DW 0123H,0456H,0789H,0ABCH,0DEFH ...
- 白板机器学习笔记 P28-P35 支持向量机
视频地址:https://www.bilibili.com/video/BV1aE411o7qd?p=28 笔记地址:https://www.yuque.com/books/share/f4031f6 ...
- python语言特性-------python2.7教程学习【廖雪峰版】(一)
开始学习廖雪峰的py2.7教程: 2017年6月5日12:54:28 笔记: 廖雪峰python2.7教程 1.用任何编程语言来开发程序,都是为了让计算机干活. 2.Python是一种相当高级的语言 ...
- 前端面经笔记 2021.8.28
前端面经笔记 2021.8.28 下面哪些执行结果为true() A.'foo' == new function(){ return String('foo'); }; B.'foo' == new ...
- Li‘s 影像组学视频学习笔记(28)-ROI/病灶体积的计算、Li‘s have a solution and plan.
本笔记来源于B站Up主: 有Li 的影像组学的系列教学视频 本节(28)主要讲解: 用SimpleITK包进行ROI/病灶体积的计算 1.加载包 import SimpleITK as sitk im ...
- 笔记28 接受请求的输入 ——处理表单
Spittr应用有两个基本的领域概念:Spitter(应用的用户)和 Spittle(用户发布的简短状态更新). 在笔记25中已经对Spittle进行了简单的构建,现在对Spitter进行实现.主要是 ...
- 网络存储 linux 访问,Linux基础教程学习笔记28——使用Samba访问网络存储
Linux基础教程学习笔记28--使用Samba访问网络存储 SMB用于Windows和类Linux系统直接的文件共享 安装samba client包: [root@linuxidc~]# yum i ...
- Git笔记(28) 签署工作
Git笔记(28) 签署工作 1. 签署工作 2. GPG 介绍 3. 签署标签 4. 验证标签 5. 签署提交 6. 使用环境 1. 签署工作 Git 虽然是密码级安全的,但它不是万无一失的 如果从 ...
- 视觉SLAM笔记(28) Ceres
视觉SLAM笔记(28) Ceres 1. 简介 2. 安装 3. 拟合曲线 1. 简介 Ceres 库面向 通用的最小二乘问题的求解 作为用户,需要做的就是定义优化问题,然后设置一些选项,输入进 C ...
最新文章
- 814:The Letter Carrier's Rounds
- 字节跳动 2019 ICME 双赛道冠军团队方案分享
- 0b3398php,思想道德修养与法律基础(九江职业技术学院)知到2020题目及答案
- C/C++基本类型字节
- 南京铁道学院计算机应用,南京铁道职业技术学院交通运营管理专业怎么样
- 360全景倒车影像怎么看_别克关怀-后视镜和倒车影像 倒车时到底看哪个
- 求树的直径+并查集(bfs,dfs都可以)hdu4514
- Confluence 附件(Attachments)宏
- matlab norm函数使用_「matlabnorm」matlab中norm函数的用法 - 金橙教程网
- 手机怎么断开电脑微信连接服务器,微信如何用手机退出电脑登录不了怎么办
- activti面试突击
- Python爬虫:新浪新闻详情页的数据抓取(函数版)
- java学习笔记第三周(二)
- 2022年TikTok的9个变现模式
- ACPC2015 K 树的直径
- windows下制作macos安装u盘_制作MacOS系统启动盘教程以及安装教程
- 行车记录仪开发方案比较--转载
- RGB888 和 RGB565
- RGB 颜色透明16进制表示
- 轻巧的批量图片压缩工具imgfast
热门文章
- python3.7代码_Centos7源代码安装python3.7,centos7,源码,python37
- java 数字图片识别_java – 识别图像中的数字
- 北斗通信运营商_国内首个“北斗+5G”应用方案发布 配套5G产品将于年底量产上市...
- html php滚动代码,html中滚动条的代码是什么?如何设置html滚动条?
- failed to initialize nvml driver/library version mismatch ubuntu
- Faste R-CNN的安装及测试
- toString()和String.valueOf()的区别(转)
- Python中字符串操作函数string.split('str1')和string.join(ls)
- python2 pip安装包等出现各种编码错误UnicodeDecodeError: 'ascii'(/或者utf-8) codec can't decode byte 0xd2......
- MySQL找出锁等待