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}
最新文章
- 使用MegaCli工具查看Raid磁盘阵列状态
- Android Volley框架的使用(5)
- DOM节点访问
- java1.7集合源码阅读:LinkedList
- winform中利用反射实现泛型数据访问对象基类(1)
- 如何在Dynamics CRM 2011 的窗体表单上加载报表
- VS2013添加NuGet的方法
- 开源Pull_To_Refresh控件使用
- [译]Java 设计模式 之模板方法
- DIP And DI
- memcpy的实现
- GCD教程(四):完结
- 结对编程-四则运算-GUI
- Python笔记·第六章——集合 (set) 的增删改查及 copy()方法
- Redis实现单点登录
- [十三]基础数据类型之AbstractStringBuilder
- (后台)SQL Server 数据库定时自动备份(转)
- 【Hi3516】 uboot下烧写BSP
- centOS 6.5下升级mysql,从5.1升级到5.6
- linux_kernel_uaf漏洞利用实战
热门文章
- 案例学习:留言本制作V1、V2
- 使用cqlsh远程连接cassandra——设置cassandra.yaml里rpc_address和listen_address为ipv4地址即可
- 【spark】RDD操作
- 013对象—— __clone __toString __call
- 使用Jenkins自动编译我的 java 项目 git maven jenkins
- OC-常见归档总结
- react: typescript-webpack项目基本配置
- 关于socket绑定INADDR_ANY
- Every derived table must have its own alias
- Precision/Recall、ROC/AUC、AP/MAP等概念区分