Py修行路 python基础 (八)函数(随时更改)
为何要用函数:
1、解决代码重用的问题
2、提高代码的可维护性,统一维护
3、程序的组织结构清晰,可读性强
定义函数
先定义后使用!!!
def funcname(arg1,arg2,.....) #funcname = 函数体
“描述信息”
函数体
return value
定义无参函数 无返回值
def foo()
print("foo")
定义有参函数 接受外部传入的值,有return 返回一个值
def my_sum(x,y)
return x+y
定义空函数 pass
调用函数
语句形式:foo()
表达式形式:res=10*my_sum(1,2)
函数调用作为另外一个函数的参数:print(my_sum(1,2))
函数返回值
不写return ----->None
return 一个值---->这个值
return 多个值 -----> 由这多个值组成的元组
函数的参数
形参:定义函数时候用的参数(命名)
实参:调用函数时候用的参数(实数) 也可以定义变量值再调用函数
my_sum(1,2)
a=1,b=2
my_sum(a,b)
实参在函数调用的过程中有效,过了就无效!
从实参的角度:
按位置传值 my_sum(1,2)
按关键字传值 my_sum(y=1,x=2)
混合传值 my_sum(1,y=2)
从形参角度:
位置参数: def foo(x,y,z) (函数变化比较多)
默认参数: def foo(x,y=1)(函数变化不多,调用次数不多)
什么时候用?
二者的位置排列?
二者的特性?
*args def foo(x,*args)
按位置传值,多余的值被*接收,组成元组的形式
**kwargs def foo(x,**kwargs)
按关键字传值,多余的值被**接收,组成字典的形式
*args 接收元组,列表,字符串,集合,输出是元组
**kwargs 接收字典,输出也是字典
def foo(x,*args,**kwargs)
foo(1,2,3,4,5,6,a=1,b=2,c=3)
x=1
args=(2,3,4,5,6)
kwargs={"a":1,"b":2,"c":3}
Py修行路 python基础 (八)函数(随时更改)的更多相关文章
- Py修行路 python基础 (二十三)模块与包
一.模块 1)定义: 模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2)为何要用模块: 退出python解释器然后重新进入,那之前定义的函数或者变量都将丢失,因 ...
- Py修行路 python基础 (十二) 协程函数应用 列表生成式 生成器表达式
一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._next_() 取下一个值 优点: 1.提供了 ...
- Py修行路 python基础 (十三)匿名函数 与 内置函数
一.匿名函数 1.定义: 匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序. 2.语法格式:lambda 参数:表达式 lambda语句中,开头先写关键字lambda,冒号前是 ...
- Py修行路 python基础 (十八) 反射 内置attr 包装
一.isinstance 和 issubclass1.isinstance(obj,cls)检查是否obj是否是类 cls 的对象.2.issubclass(sub, super)检查sub类是否是 ...
- Py修行路 python基础 (九)作用域 函数嵌套 闭包
名称空间与作用域 变量,函数 分成三种 #内置名称空间 内置函数, 系统函数内部自定义的. python查看内置函数,命令: import builtins dir(builtins) #全局名称空 ...
- Py修行路 python基础 (七)文件操作 笔记(随时更改添加)
文件操作流程: 1.打开文件 open() 2.操作文件 read .writeread(n) n对应读指定个数的 2.x中读取的是字节! 3.x中读取的是字符!read 往外读取文件,是以光标位置开 ...
- Py修行路 python基础 (二十五)线程与进程
操作系统是用户和硬件沟通的桥梁 操作系统,位于底层硬件与应用软件之间的一层 工作方式:向下管理硬件,向上提供接口 操作系统进行切换操作: 把CPU的使用权切换给不同的进程. 1.出现IO操作 2.固定 ...
- Py修行路 python基础 (十九)面向对象进阶(下)
item系列 __slots__方法 __next__ 和 __iter__实现迭代器 析构函数 上下文管理协议 元类一.item系列 把对象操作属性模拟成字典的格式. 例如:对象名['key'] ...
- Py修行路 python基础 (十一)迭代器 与 生成器
一.什么是迭代? 迭代通俗的讲就是一个遍历重复的过程. 维基百科中 迭代(Iteration) 的一个通用概念是:重复某个过程的行为,这个过程中的每次重复称为一次迭代.具体对应到Python编程中就是 ...
随机推荐
- C++(二十二) — 指针变量、函数指针、void指针
1.指针变量 (1)指针变量必须在初始化后才可以正常使用,初始化就是给他分配一个有效的数据地址. 先初始化,后使用. (2)指针可以进行加减运算,++ 或者 --:将指针的位置向前或者向后移动一个数据 ...
- PL/SQL通过修改配置文件的方式实现数据库的连接
http://jingyan.baidu.com/article/c74d600080632a0f6a595d80.html
- SVN与Git优缺点比较
1.SVN优缺点优点: 1. 管理方便,逻辑明确,符合一般人思维习惯. 2. 易于管理,集中式服务器更能保证安全性. 3. 代码一致性非常高. 4. 适合开发人数不多的项目开发. 缺点: 1. 服务器 ...
- 【费用流】bzoj1221 [HNOI2001] 软件开发
几乎为“线性规划与网络流24题”中的餐巾问题. 这里把S看成毛巾的来源,T看成软件公司,我们的目的就是让每天的毛巾满足要求(边满流). 引用题解: [问题分析] 网络优化问题,用最小费用最大流解决. ...
- 【.Net】Socket小示例
引言 项目中用到了Socket,这里做个控制台小示例记录一下. Client 客户端的Receive用了异步方法,保持长连接,可以随时发送消息和响应服务端的消息,如下 static string Cl ...
- html03表单
<!DOCTYPE HTML> <html> <head> <title>用户登录的表单</title> </head> < ...
- 可视化CNN神经网路第一层参数
在上Andrew Ng的课的时候搜集到了课程里面自带的显示NN参数的代码,但是只能显示灰度图,而且NN里的参数没有通道的概念.所以想要获得可视化CNN的参数,并且达到彩色的效果就不行了. 所以就自己写 ...
- 基于Photon 的 PUN+ 如何自动实现RPC呼叫的.
基于Photon 的 PUN+ 如何自动实现RPC呼叫的. 简单说函数标记成 RPC 类型的. void Hello() { Debug.Log("Hello"); PhotonV ...
- Asphyre Sphinx is a cross-platform framework for developing 2D/3D video games and interactive business applications
Introduction Introduction Asphyre Sphinx is a cross-platform framework for developing 2D/3D video ga ...
- 伪元素:target
:target 伪类选择器 :target 是 CSS3 新增的一个伪类,可用于选取当前活动的目标元素.当 URL 末尾带有锚名称 #,就可以指向文档内某个具体的元素.这个被链接的元素就是目标元素(t ...