函数的参数
形参(函数定义时) + 实参(函数调用时)
形参:形式参数 在函数的定义处定义的参数,比如def func(参数1, 参数2, 参数3...)
普通参数(位置参数), 默认参数,普通收集参数(*args), 关键字收集参数(*kwargs), 命名关键字参数
        实参:实际参数  在函数调用处定义的参数,比如 func(参数1, 参数2, 参数3...)
普通参数(位置参数),关键字参数
函数定义处
def func(参数1, 参数2, 参数3...):
pass
函数调用处
func(参数1, 参数2, 参数3...)

#普通形参(位置形参)
#函数定义处:普通形参(位置形参)
def func(n,m):
print("%d x %d = %d"%(n, m , n*m))
#函数调用处:普通实参(位置实参)
func(2,3) #2 x 3 = 6

#默认形参
#函数定义处:默认形参
def func(n=2,m=3):
print("%d x %d = %d"%(n, m , n*m))
#函数调用处:普通实参(位置实参)
func() #2 x 3 = 6 #使用默认参数
func(4,5) #4 x 5 = 20 #自定义参数

#普通收集形参(*args)
# 函数定义处:普通收集形参,通用写法:*args
def func(*args):
print(args) #(1, 2, 3, 4, 5) 输出的是一个元组
total = 0
pro = []
for i in args:
total += i
pro.append(str(i))
print('+'.join(pro)+'='+str(total)) ##1+2+3+4+5=15
#函数调用处:普通实参(位置实参) 
func(1, 2, 3, 4, 5)

#关键字收集形参(**kwargs)
# 函数定义处:关键字收集形参,通用写法:**kwargs
def func(**kwargs):
print(kwargs) #{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} 输出的是一个字典
total = 0
pro = []
for v in kwargs.values():
total += int(v)
pro.append(str(v))
print('+'.join(pro)+'='+str(total)) ##1+2+3+4+5=15
#函数调用处:关键字实参
func(a = 1, b = 2, c = 3, d = 4, e = 5)
#命名关键字形参

#(1)
# 函数定义处:命名关键字形参,通用写法:在*后边的形参,在进行函数调用时都需要通过关键字实参传入。
def func(a, b, * , c, d):
print("%d+%d+%d+%d=%d"%(a, b, c, d,a+b+c+d)) #函数调用处:c 和 d 需要使用关键字实参传入
func(1, 2, c = 3, d = 4) #1+2+3+4=10 #(2)
# 函数定义处:命名关键字形参,通用写法:在普通收集参数(*args)和关键字收集参数(**kwargs)中间的参数,在进行函数调用时都需要通过关键字实参传入。
def func(*args, a, b, **kwargs):
print(args, a, b, kwargs) # 函数调用处:a 和 b 需要使用关键字实参传入
func(1, 2, a=3, b=4, c=5, d=6) #(1, 2) 3 4 {'c': 5, 'd': 6}

python3 函数的参数的更多相关文章

  1. 第六天python3 函数、参数及参数解构(一)

    函数 作用:结构话编程对代码的最基本的封装,一般按照功能组织一段代码,封装的目的是为了复用,减少冗余代码,代码更加简洁.美观,可读易懂: 分类: 内建函数,如max() reversed()等 库函数 ...

  2. python3函数的参数

    函数的定义能简化代码的逻辑,对于函数的调用者来说,只需要知道如何正确的传递参数,以及知道函数将返回什么值就可以了,而函数内部的复杂逻辑被封装起来,调用者不必了解. 位置参数 调用函数时,传入实参的值按 ...

  3. 第七天python3 函数、参数及参数解构(二)

    函数参数 参数规则: 参数列表参数一般顺序是:普通参数<--缺省参数<--可变位置参数<--keyword-only参数(可带缺省值)<--可变关键字参数 def fn(x,y ...

  4. Python3学习(一)-基础、数据类型、变量、字符串和编码、list&tuple、if、for、while、dict、set、函数与参数

    ##廖雪峰py3笔记 ## '//'这是获得相除后的整数部分 ##a = 10//3 ##print (a) ## '/'获得相除后的结果,为浮点数,结果能整除也也是浮点数 ##b = 10/3 ## ...

  5. python3中匿名函数做参数,匿名函数做实参,eval关键字

    一:说到匿名函数,大家都感到陌生又熟悉,今天我带大家了解一下py3中的匿名函数,以及匿名函数作为函数的参数的情况 主要通过以下实例来说明: 实例一: newarr =[33,44444,6222,88 ...

  6. python3 使用装饰器,及函数作为参数

    #装饰import typesdef shucai(n): print('蔬菜价格7') if type(n)==types.FunctionType: return n()+7 return n+7 ...

  7. python3函数

    一.python3函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.可以自己创建函数,这被叫做用户自定义函数. 1.定义函数规则 函 ...

  8. Python进阶-函数默认参数

    Python进阶-函数默认参数 写在前面 如非特别说明,下文均基于Python3 一.默认参数 python为了简化函数的调用,提供了默认参数机制: def pow(x, n = 2): r = 1 ...

  9. Python3 函数 一

    什么是函数? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pascal ...

随机推荐

  1. MapReduce框架原理

    MapReduce框架原理 3.1 InputFormat数据输入 3.1.1 切片与MapTask并行度决定机制 1.问题引出 MapTask的并行度决定Map阶段的任务处理并发度,进而影响到整个J ...

  2. docker flannel网络部署和路由走向分析

    1.flannel介绍 flannel是coreos开发的容器网络解决方案.flannel为每个host分配一个subnet,容器从此subnet中分配ip.这些ip可以在host间路由,容器间无需n ...

  3. golang ctrie demo

    下载ctrie: go get -t github.com/Workiva/go-datastructures/trie/ctrie 测试demo1: package main import ( &q ...

  4. 操作系统-进程(3)Linux下的进程相关命令

    操作系统给予这个内存中的单元一个标识符(PID)依据登入者的UID/GID(/etc/passwd) 衍生出的其它程序(子程序),一般情况也,也会沿用这个程序(父程序)的相关权限 ParentID(P ...

  5. 第一篇scrum冲刺博客--Interesting-Corps

    第一篇scrum冲刺博客 一.Alpha阶段各成员任务 鲍鱼铭 任务名称 预计时间 主页页面和探测空间设计及布局实现 6h 主页页面跳转社区功能及社区设计及布局实现 6h 搜索页面跳转.设计及布局实现 ...

  6. [源码解析] Flink的Slot究竟是什么?(1)

    [源码解析] Flink的Slot究竟是什么?(1) 目录 [源码解析] Flink的Slot究竟是什么?(1) 0x00 摘要 0x01 概述 & 问题 1.1 Fllink工作原理 1.2 ...

  7. 微信商户H5支付申请不通过被驳回解法,拒绝提示:网站有不实内容或不安全信息

    H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付.主要用于触屏版的手机浏览器请求微信支付的场景.可以方便从外部浏览器唤起 ...

  8. JavaSE基础--part1

    Java特性和优势 简单.面向对象.可移植性.高性能.分布式.动态性.多线程.安全性.健壮性 Java的三大版本 JavaSE 标准版(应用于桌面程序,控制台开发) JavaME 嵌入式开发(手机,小 ...

  9. xmind8 破解激活教程

    这里以windows为例来演示,其它操作系统需根据情况修改相应步骤. 一.下载安装包 首先去xmind国外官网下载对应操作系统的安装包,国内官网的那个是有残缺的,不支持破解. 官网下载链接 二.下载破 ...

  10. 使用IDEA创建一个SSM工程(非maven)

    说在前面的话 直到现在从Eclipse向IDEA转的人越来越多,但是IDEA的项目创建让人摸不清头脑,因此这里我创建一个非maven的ssm工程,供大家练练手,进一步的了解IDEA在项目中的使用. 创 ...