python学习笔记(14)参数对应

原链:http://www.cnblogs.com/vamei/archive/2012/07/08/2581264.html

笔记:

  1 #第14讲
  2 #参数对应
  3
  4 #参数传递
  5 def f(a,b,c):
  6     return a+b+c
  7
  8 print (f(1,2,3))
  9
 10 #这个是按照参数位置来传递的,把1传递给a,把2传递给b,把c传递给3,return a+b+c
 11
 12 print (f(c=2,b=3,a=4))
 13 #关键字传递,是根据参数名字传递参数,把c的2传给c
 14 #不用考虑位置因素
 15
 16 #关键字传递和位置传递混用,但是位置参数要在关键字之前
 17 print (f(1,c=2,b=4))
 18 #把1传递给a,剩下按照参数名字传递
 19
 20 #参数默认值
 21 def f(a,b,c=10):
 22     return a+b+c
 23
 24 print (f(2,3))
 25 #根据位置传递,把2传递a,把3传递给b,c使用默认值10
 26 #输出就是15
 27
 28 print (f(3,2,1))
 29 #有了足够的值,c=1,就不用c=10了
 30 #输出就是6
 31
 32
 33
 34 #包裹传递
 35 def func(*name):
 36     print (type(name))
 37     print (name)
 38
 39 func(1,4,6)
 40
 41 #<class 'tuple'>
 42 #(1, 4, 6)
 43 #所有参数被收集,合并成一个元组(tuple),包裹传递
 44 #尝试过list,会报错
 45
 46 func(5,6,7,1,2,3)
 47
 48 #输出<class 'tuple'>
 49 #(5, 6, 7, 1, 2, 3)
 50
 51
 52 ###为了提醒python,参数name是包裹位置传递所用的元组名,定义func时,在name前加*
 53
 54
 55 #包裹关键字传递
 56
 57 def func(**dict):
 58     print (type(dict))
 59     print (dict)
 60
 61 func(a=1,b=9)
 62 #输出是一个字典:{'a': 1, 'b': 9}
 63 func(m=2,n=1,c=11)
 64 #同理{'m': 2, 'n': 1, 'c': 11}
 65 #所有参数被dict收集
 66
 67 ###参数dict是包裹关键字传递用的字典,在dict前加**
 68 #包裹传递,定义函数,def func(),在相应元组或字典前加*或**
 69
 70
 71 #解包裹 unpacking
 72
 73 def func(a,b,c):
 74     print (a,b,c)
 75
 76 args = (1,3,4)
 77 func(*args)
 78 #输出结果:1,3,4
 79
 80 #解包裹,让tuple 每一个元素对应一个位置参数
 81 #   *  的作用,提醒python,我想把args拆分的三个元素,分别传递a b c
 82 #没有  * 的话,会把args 当做一个参数传递,但是其他位置没有元素,就会报错
 83 #func()里面只有一个元素,可以不用   * 号
 84
 85
 86 dict = {'a':1, 'b':2, 'c':3}
 87 func(**dict)
 88
 89 #输出结果:1,2,3
 90 #字典传递,字典每个key 作为关键字传递给func
 91
 92
 93
 94 #定义或者调用参数,参数可以混合传递
 95 #混合传递要注意前后顺序,就1,b=3,c=4
 96
 97 '''
 98 def f(a,b,c):
 99     return a+b+c
100
101 print (f(a=1,b=3,4))
102 SyntaxError: positional argument follows keyword argument
103 '''
104
105 #先位置,再关键字,再包裹位置,再包裹关键字
106
107
108 def func(a,b,c=1):
109     print (a,b,c)
110
111 args = (1,2)
112 func(*args)
113
114 #输出是 1,2,1

func(*dict)

返回dict 的key

func(**dict)

返回dict 的value

20171016更新

在页面下面发现一个很实用的例子

def func(a=0,b=0,c=0,d=0,e=0,f=0,g=0):print (a,b,c,d,e,f,g)args = (4,5)
args1 = {'e':6, 'd':7}
func(1,*args,g=2,f=3,**args1)#同时传递位置参数,关键字参数,包裹参数,包裹关键字参数
#   *args 提示是元组,b就是4,c就是5
#g 是2  f是3
# **args1 是dict ,取值,e是6 d是7
#输出:1 4 5 7 6 3 2

posted on 2017-10-16 16:17 liyihao 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/liyihao/p/7677451.html

python学习笔记(14)参数对应相关推荐

  1. Python学习笔记14(socket编程)

    socket更详细的介绍在这篇就不做说明了,有兴趣的同学可以去网上查找相关资料或者直接https://docs.python.org/3/library/socket.html查看 简单的理解,soc ...

  2. python学习笔记14 图像格式转换png转jpg

    #Time:20181008 22:23 #将png图像转换为jpg #form:https://blog.csdn.net/bevison/article/details/79126410?utm_ ...

  3. Python学习笔记14:标准库之信号量(signal包)

    signal包负责在Python程序内部处理信号.典型的操作包含预设信号处理函数,暂停并等待信号,以及定时发出SIGALRM等. 要注意,signal包主要是针对UNIX平台(比方Linux, MAC ...

  4. [python教程入门学习]python学习笔记(CMD执行文件并传入参数)

    本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

  5. 廖Python学习笔记一

    1. 廖Python学习笔记 大的分类 如函数 用二级标题,下面的用三级 如输入输出 1.1.1. 输入输出 1.1.1.1. 输出 用 print() 在括号里加上字符串,就可以向屏幕上输出指定的文 ...

  6. Python学习笔记(六)

    1. IO编程 1.1 文件读写 1.2 StringIO和BytesIO 1.3 操作文件和目录 1.4 序列化 2. 进程和线程 2.1 多进程 2.2 多线程 2.3 ThreadLocal 2 ...

  7. OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并

    OpenCV之Python学习笔记 一直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看到一本国外的新书< ...

  8. Python学习笔记:第三方模块2

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. Python学习笔记:常用第三方模块(1)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

最新文章

  1. 子网掩码 以及 子网数为什么减去全0和全1
  2. mybatis-spring从1.1升级到1.2所带来的dao层级的编写问题
  3. php mysql备份成sql_单php文件实现备份MySQL导出为.sql数据库代码
  4. Partition--分区总结
  5. Spring全自动AOP和项目加入jar包
  6. java实用教程——组件及事件处理——设置组件的位置(相对于窗口具体位置和布局)
  7. Android开发 GradientDrawable详解
  8. python数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析
  9. TechWeb:转载合作须知!
  10. retrofit框架学习(一)----基本用法
  11. SAP License:SAP与ORACLE到底谁更强?
  12. SAP License:SAP IDES 4.71的安装补充
  13. Android 简单实现控件的拖动
  14. oracle技术之oracle备份恢复概述
  15. Linux服务-搭建NFS
  16. 第十五章 第十五章 异步A3C(Asynchronous Advantage Actor-Critic,A3C)-强化学习理论学习与代码实现(强化学习导论第二版)
  17. 软件功能测试用例表,功能测试用例模板.xls
  18. 《开源公开课分享》:Java开源框架案例分享
  19. MOS管的源极和漏极的区别
  20. 很多人觉得FPGA难学,因为他们没总结出数电的尽头是模电!

热门文章

  1. RabbitMQ消息队列之一:RabbitMQ的环境安装及配置
  2. Android 6.0 Permission权限与安全机制
  3. 实验四:Android 开发基础
  4. easyui的datagrid的editor为combobox,根据每个row的属性的不同,如何动态的设置每个row的combobox的url...
  5. 一句话让你明白伪元素和伪类的区别
  6. java对象--多态的好处
  7. Shell 编程学习笔记
  8. 2006吴山庙会-怎么都是人啊?
  9. Docker常见命令---简易教程
  10. 前端代码异常日志收集与监控