'''
时间: 9月5日 - 9月30日
要求:
1. 书本内容总结归纳,整理在博客园笔记上传
2. 完成所有课后习题
注:“#” 后加的是备注内容
(每天看42页内容,可以保证月底看完此书)
“重点笔记”“本章习题” - 标题1,二级标题用- 标题2,笔记大纲标题、习题题目- 加粗,16px
'''

重点笔记

摘要

参数是对象作为输入发送给函数的方式。参数(argument)
一. 传递参数

  下面是函数传递参数时的一些简要的关键点:

  • 参数的传递是通过自动将对象赋值给本地变量名来实现的
  • 在函数内部的参数名的赋值不会影响调用者
  • 改变函数的可变对象参数的值也许会对调用者有影响

二. 特定的参数匹配模型

  参数在Python中总是通过赋值进行传递的。传入的对象赋值给了在def头部的变量名。

  1. 基础知识
    位置:从左至右进行匹配
    关键字参数:使用name = value这种语法
    默认参数: 为没有传入值的参数定义参数值,使用name = value这样的语法
    可变参数: 收集任意多基于位置或关键字的参数,函数能够使用特定的参数,它们是以字符串*开头,收集任意多的额外参数
    可变参数解包:传递人一多的基于位置或关键字的参数
    Keyword-only参数:参数必须按照名称传递
  2. 细节
    Python内部是使用以下的步奏来在赋值前进行参数匹配的:
    ①通过位置分配非关键字参数;
    ②通过匹配变量名分配关键字参数;
    ③其他额外的非关键字参数分配到*name元组中;
    ④其他额外的关键字参数分配到**name字典中;
    ⑤用默认值分配给在头部未得到分配的参数

三. 任意参数的实例

  1. 收集参数
    第一种用法:在函数定义中,在元组中收集不匹配的位置参数

    >>> def f(*args):
    print(args) >>> f()
    ()
    >>> f(1)
    (1,)
    >>> f(1,2,3,4)
    (1, 2, 3, 4)
  2. ** 特性类似,但是它只对关键字参数有效。
    >>> def f(**args):
    print(args) >>> f()
    {}
    >>> f(a=1,b="py")
    {'b': 'py', 'a': 1}
  3. 混合用法
    函数头部能够混合一般参数、*参数和**参数去实现更加灵活的调用方式
    >>> def f(a,*arg,**args):
    print(a,arg,args) >>> f(1,2,3,x=1)
    1 (2, 3) {'x': 1}

四. keyword-Only 参数

  可以在参数列表中使用一个*字符,来表示一个函数不会接受一个变量长度的参数列表,而是仍然期待跟在*后面的所有参数都作为关键字传递。


本章习题:

1.

答: 1 2 5

2.

答: 1 2 3

3.

答: 1 (2,3)

4.

答:1,{c:3,b:2}

5.

答:1 5 6 4

《Python 学习手册4th》 第十八章 参数的更多相关文章

  1. 《Python 学习手册4th》 第八章 列表与字典

    ''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...

  2. 《Python 学习手册4th》 第十九章 函数的高级话题

    ''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...

  3. 《Python 学习手册4th》 第十六章 函数基础

    ''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...

  4. 《Python 学习手册4th》 第十四章 迭代器和解析

    ''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...

  5. 《Python 学习手册4th》 第十二章 if测试和语法规则

    ''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...

  6. 《Python 学习手册4th》 第十五章 文档

    ''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...

  7. 《Python 学习手册4th》 第七章 字符串

    ''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...

  8. 《Python 学习手册4th》 第十七章 作用域

    ''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...

  9. 《Python 学习手册4th》 第十三章 while和for循环

    ''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...

随机推荐

  1. Java并发包中常用类小结(一)

    从JDK1.5以后,Java为我们引入了一个并发包,用于解决实际开发中经常用到的并发问题,那我们今天就来简单看一下相关的一些常见类的使用情况. 1.ConcurrentHashMap Concurre ...

  2. Java学习笔记(二)UML基础

    用例图:代表系统的一个功能模块,仅仅是系统功能的描述.用例图包括:用例.角色.角色和用例之间的关系以及系统内用例之间的关系. 类图:表示系统中包含哪些实体,各实体之间如何关联. 类图除了表示实体内部结 ...

  3. 【memcache缓存专题(2)】memcache安装与命令行使用

    进新公司一个多月了,一直没有时间来更新,后续还是要保持着每日更新的频率 安装 在windows上安装 略(都玩到缓存的程度了,就没必要在windows上捣弄了) 给个参考: http://blog.c ...

  4. java io知识点汇总FIle类

    1.路径分隔符问题: 因为java有跨平台行,而在windows和linux中的目录分隔符是不同的.windows是"\" 而linux是"/"  所以必须想办 ...

  5. 老韩思考:一个卖豆腐的能转行IT吗? 你的卖点在哪里?

    前言: 我带过的学生很多,各行各业都有,泰牛程序员招生消息放出去后,还有一个在菜市场上卖豆腐的也看我的视频教程,决定转换IT行业,我想,北大毕业的可以卖猪肉,那么卖豆腐的为什么就不能从事IT行业呢?那 ...

  6. android的jni

    一.底层实现: c文件:hardware/libhardware_legacy/power/power.c 以其中set_screen_state(int)函数为例 其Android.mk中添加:   ...

  7. Spring 操作数据库

    试了一下spring的JdbcTemplate觉得很好用.首先增加一个连接到mysql数据库的dataSource <bean id="dataSource2" class= ...

  8. 转Java 回调函数的理解

    所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数.例如Win32下的窗口过程函数就是一个典型的回调函数.一般说来,C ...

  9. nyoj-257 郁闷的C小加(一) 前缀表达式变后缀

    郁闷的C小加(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 我们熟悉的表达式如a+b.a+b*(c+d)等都属于中缀表达式.中缀表达式就是(对于双目运算符来说 ...

  10. linux中proc文件系统 -- ldd3读书笔记

    1./proc 文件系统概述 /proc 文件系统是由软件创建,被内核用来向外界报告信息的一个文件系统./proc 下面的每一个文件都和一个内核函数相关联,当文件的被读取时,与之对应的内核函数用于产生 ...