为何要用函数:

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}

最新文章

  1. 使用MegaCli工具查看Raid磁盘阵列状态
  2. Android Volley框架的使用(5)
  3. DOM节点访问
  4. java1.7集合源码阅读:LinkedList
  5. winform中利用反射实现泛型数据访问对象基类(1)
  6. 如何在Dynamics CRM 2011 的窗体表单上加载报表
  7. VS2013添加NuGet的方法
  8. 开源Pull_To_Refresh控件使用
  9. [译]Java 设计模式 之模板方法
  10. DIP And DI
  11. memcpy的实现
  12. GCD教程(四):完结
  13. 结对编程-四则运算-GUI
  14. Python笔记·第六章——集合 (set) 的增删改查及 copy()方法
  15. Redis实现单点登录
  16. [十三]基础数据类型之AbstractStringBuilder
  17. (后台)SQL Server 数据库定时自动备份(转)
  18. 【Hi3516】 uboot下烧写BSP
  19. centOS 6.5下升级mysql,从5.1升级到5.6
  20. linux_kernel_uaf漏洞利用实战

热门文章

  1. 案例学习:留言本制作V1、V2
  2. 使用cqlsh远程连接cassandra——设置cassandra.yaml里rpc_address和listen_address为ipv4地址即可
  3. 【spark】RDD操作
  4. 013对象—— __clone __toString __call
  5. 使用Jenkins自动编译我的 java 项目 git maven jenkins
  6. OC-常见归档总结
  7. react: typescript-webpack项目基本配置
  8. 关于socket绑定INADDR_ANY
  9. Every derived table must have its own alias
  10. Precision/Recall、ROC/AUC、AP/MAP等概念区分