一.为什么要使用函数

函数能提高应用的模块性,和代码的重复利用率。

二.函数的参数

位置参数:从左至右进行匹配

     一般情况,也就是我们迄今为止最常用的方法,是通过位置进行匹配把参数值传递给函数头部的参数名称,匹配顺序从左至右。

关键字参数:通过参数名进行匹配

      调用者可以定义哪一个函数接受这个值,通过在调用时使用参数的变量名,使用name=value这种语法。

默认参数:为没有传入值的参数定义参数值

     如果调用时传入的值过少的话,函数能为参数定义接受的默认值,再一次使用语法name=value

可变参数:收集任意多基于位置或关键字的参数

     函数能够使用特定的参数,他们是以*开头,收集任意多的额外参数(这个特征性 常常叫做可变参数)

可变参数解包:传递任意多的基于位置或关键字的参数

       调用者能够使用*语法将参数集合打散,分成参数。这个“*”与在函数头部的“*”恰恰相反:在函数头部他意味着收集任意多的参数,而在调用者中意味                           着传递任意多的参数

KeyWord-only参数:参数必须按照名称传递

                         函数可以指定参数,参数必须用带有关键字参数的名字来传递。这样的参数通常用来定义实际参数 以外的配置选项。

"""参数匹配语法"""

# 对于调用者来说:
func(value) # 位置参数:通过位置进行匹配
func(name=value) # 关键字参数:通过变量名匹配
func(*sequence) # 将参数集合解包,作为独立的位置,或关键字参数传入函数
func(**dict) # 将成对存在的关键字/值,并作为独立的关键字参数传入函数 # 对于函数定义来说
def func(name) # 位置参数:通过位置或变量名进行匹配
def func(name=value)# 默认参数
def func(*name) # 匹配并收集(在元组中)所包含位置的参数
def func(**name) # 匹配并收集(在字典中)所包含位置的参数
def func(*args, name)# 参数必须在调用中按照关键字传递 """ 在函数调用中,简单的通过变量名位置进行匹配,但是使用name=value的形式
告诉python依照变量名进行匹配,这叫做关键字参数。在调用*sequence或者
**dict允许我们在一个序列或字典中相应的封装任意多的位置相关或关键字的对象
并且在将他们传递给函数的时候,将他们解包为分开的单个的参数
"""
"""
在函数定义的时候,一个简单的变量名是通过位置或变量名进行匹配的(取决于调用者如何传递参数)
但是name=value的形式定义了默认的参数值。*name的形式收集了任意的额外不匹配的参数到元组中,
并且**name的形式将会收集额外的关键字参数到字典中。python3之后跟在*name或者一个单独的*之后
的任何正式的或默认的参数名称,都是Keyword-only参数,并且必须在调用中按照关键字传递
"""
"""
在函数调用中,参数必须以此顺序出现:任何位置参数,紧跟着任何关键字参数和*sequence形式的组合,后面跟**dict
在函数定义时,参数必须以此顺序出现:一般参数,紧跟着任何默认参数,如果有的话后面是*name(或者*)的形式后面跟着name或者name=value,后面跟着**name
"""
 

python学习——函数参数的更多相关文章

  1. (转)python中函数参数中如果带有默认参数list的特殊情况

    在python中函数参数中如果带有默认参数list遇到问题 先看一段代码 1 2 3 4 5 6 7 8 9 def f(x,l=[]):     for i in range(x):         ...

  2. python中函数参数的引用方式

    值传递和引用传递时C++中的概念,在python中函数参数的传递是变量指向的对象的物理内存地址!!! python不允许程序员选择采用传值还是传引用.Python参数传递采用的肯定是“传对象引用”的方 ...

  3. Python基础-函数参数

    Python基础-函数参数 写在前面 如非特别说明,下文均基于Python3 摘要 本文详细介绍了函数的各种形参类型,包括位置参数,默认参数值,关键字参数,任意参数列表,强制关键字参数:也介绍了调用函 ...

  4. Python学习-函数,函数参数,作用域

    一.函数介绍 函数定义:函数时组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 我们已经知道python提供了许多内建函数,print(), type()等.我们也可以自己创建函数,这被叫 ...

  5. python学习——函数及其参数

    函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.严格来说python只有函数,没有过程,人们理解的函数都是带有return的,而过程 ...

  6. python学习-函数和lambda表达式(五)

    5.2函数参数 位置参数:根据位置传入参数 关键字参数:根据参数名来传入参数 def girth(width, height): print("width:", width) pr ...

  7. 第5.2节 Python的函数参数收集

    函数的参数使用除了常规的位置参数和关键字参数外,还支持可变个数的函数参数,这种支持可变个数的参数方法称为参数收集,对应的参数称为收集参数. 一.参数收集的定义 Python的函数支持可变不定数量的参数 ...

  8. Python之函数&参数&参数解构

    1.1函数定义 def 函数名(参数列表): 函数体(代码块) [return 返回值] p 函数名就是标识符,命名要求一样 语句块必须缩进,约定4个空格 Python的函数没有return语句,隐式 ...

  9. python学习——函数进阶

    首先来看下面这个函数. def func(x,y): bigger = x if x > y else y return bigger ret = func(10,20) print(ret) ...

随机推荐

  1. 俩台服务器搭建redis集群5.0.4

    俩台服务器搭建redis集群 1.俩服务器分别新建目录:usr/local/redis-cluster 2.下载源码并解压编译(使用redis版本5.0.4) 3.tar xzf redis-5.0. ...

  2. Java 读写 excel 实战完全解析

    本文微信公众号「AndroidTraveler」首发. 背景 时值毕业季,很多毕业生初入职场. 因此,这边也写了一些新手相关的 Android 技术点. 比如上一篇的 Android 开发你需要了解的 ...

  3. Makefile简单的配置

    一.文件配置目录 1)原目录 demo ├── Makefile ├── demo.cpp ├── demo.hpp └── main.cpp 2)make之后的目录 demo ├── Makefil ...

  4. Quartus ii调试技巧_01

    前几天李主任跟我分享了一些特别好用的调试技巧: 1)System Sources and Probes Editor---类似于人为设置触发条件,创建虚拟按键等功能,这段时间一直在做一个电机的驱动,板 ...

  5. cookbook_模块和包

    1把模块按层次结构组织成包 只需确保每个目录中都定义了__init__.py即可. 2对所有符号的导入进行精确控制 当用户使用from module import * 语句时,我们希望对从模块或包中导 ...

  6. WAMP运行原理

    Apache运行原理 Apache的诸多功能都是通过模块进行加载的,自己本身并不具备那么多功能. php文件动态网页请求原理 请求步骤: 1. 用户在浏览器中输入需要访问的网站的域名以及具体要请求的网 ...

  7. @Validated和@Valid的区别?校验级联属性(内部类)

    每篇一句 NBA里有两大笑话:一是科比没天赋,二是詹姆斯没技术 相关阅读 [小家Java]深入了解数据校验:Java Bean Validation 2.0(JSR303.JSR349.JSR380) ...

  8. 游戏开发3D基础知识

    概念学习: 向量 向量简介 我们将所有彼此平行的向量进行平移,使其起点与坐标原点重合,当某一向量的起始端与坐标原点重合,我们成该向量处于标准位置.这样,我们就可用向量的终点坐标来描述一个处于标准位置的 ...

  9. Layui多文件上传进度条

    Layui原生upload模块不支持文件上传进度条显示,百度,谷歌找了一下不太适用.后面找到一个别人修改好的JS,替换上去,修改一下页面显示即可使用,一下是部分代码 HTML: <div cla ...

  10. HTML/CSS:block,inline和inline-block概念和区别

    总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通 ...