DAY10、函数的参数
一、实参:为形参传递值
调用函数时,实参可以由常量,变量,表达式三种的组合
1、位置实参:必须按照位置的顺序,从左到右为形参传递值
fn1(10, 20, 30)
fn1(30, 20, 10)
2、关键字实参:可以不按顺序传递,形参按名字 取值
fn1(a=10, b=20, c=30)
fn1(c=30, b=20, a=10)
3、两种混用:关键字实参必须出现在位置实参之后
def fn2(a,b,c,d,e,f):
print(a,b,c,d,e,f)
fn2(10,20,30,e=100,f=500,d=200)
二、形参:在函数定义中()中出现的参数
形参就是拷贝实参的值,随着函数的调用才产生,随着函数调用结束而销毁
1、位置形参:可以由位置实参与关键字实参来传值
def fn(a,b,c):
print(a,b,c)
fn(10,20,30) #位置实参来传值
fn(a=10,b=20,c=30) #关键字实参来传值
2、默认形参:具有默认值,用=进行赋值
def fn(a=10,b=20)
print(a,b)
注意点 1.默认形参可以由位置实参与关键字实参来传值,还可以不用传值(采用自身默认值)
2.位置参数与默认形参同时存在时,默认形参必须在后
3.位置形参必须传值,默认形参分情况传值
3、变长位置形参:只能由位置实参来传值
def fn(a,b=10,*args)
print(a,b)
print(args)
可变长形参会以元组形式接受 位置形参与默认形参未接受完的所有传入的位置实参
注意点:可变长形参只能接受位置实参的值,位置实参还必须在关键字实参前,
导致默认形参只能由位置实参来传值
def fn(*args)
print(args)
fn(1,2,3,4,5) #(1,2,3,4,5)
单列集合(包括字符串)将该变量进行打散在传值(本质传递的是地址)
a='ab'
b=[1,2]
fn(*a) #('a','b')
fn(*b) #(1,2)
4、关键字形参:必须由关键字实参来传值,出现在*后的都是关键字形参
def tt(a,b=10,*,c,d=10,e):
print(a,b,c,d,e) #a位置形参,b默认形参,c和e无值关键字形参,d有值关键字形参
#a和b有先后顺序,c,d,e无先后顺序
5、可变长关键字形参:用来接收没有被关键字形参接收完的关键字形参,也只能由关键字实参来传值
用字典来存放数据
def fn(*,a,b=20,c,**kwargs):
print(a,b)
print(kwargs)
fn(d=40,e=50,a=10,c=30)
整体赋值
dic = {'name':'owen','age':18}
def fn1(**kwargs):
print(kwargs)
fn1(**dic)
三、小结
1、位置形参与默认形参:能用位置实参与关键字实参来传值
2、可变长位置形参:只能位置实参来传值
3、关键字形参:只能关键字实参传值
DAY10、函数的参数的更多相关文章
- Python—day10 函数的参数分类
一.实参与形参 1.形参:定义函数,在括号内声明的变量名,用来接受外界传来的值 def fn(形参们): pass def fn(a,b,c):# 形参就是考虑实参的值, ...
- DAY10 函数的参数
一.函数参数的分类 1.实参:调用参数,在括号内传入的实际值,值可以为常量.变量.表达式或三者的组合 2.形参:定义函数时,在括号内声明的变量名,用来接受外界传来的值 注意:形参随着函数的调用而产生, ...
- 【学习笔记】--- 老男孩学Python,day10, 函数, 动态参数 命名空间\作用域 global nonlocal
1. 动态参数 位置参数的动态参数: *args 关键字参数的动态参数 : **kwargs 顺序:位置---*args---默认值---**kwargs 在形参上*聚合, **聚合 在实参上*打散, ...
- day10.函数,函数的参数
函数的思维导图: 老师的笔记 昨天内容概括 #组长:默写统一交给组长 #不建议看视频 #上课敲过的所有的例子 # 1.看一遍.看能不能看懂 # 2.给每一道题起一个名字或者一句描述 # 3.看着文字, ...
- day10 python之函数的参数
函数的基本属性 1.1 函数的含义 # 1.功能 :包裹代码,实现功能,达到目的 # 2.特点 :反复调用,提高开发效率,便于代码维护 1.1.2 函数的基本格式 # 函数名 :变量命名规则 # 函数 ...
- day10.函数基础及函数参数
一.函数 功能:包裹一部分代码 实现某一个功能 达成某一个目的 特点: """ 特点:可以反复调用,提高代码的复用性,提高开发效率,便于维护管理 函数基本格式 函数的定义 ...
- day10.函数进阶
函数的命名空间 从python解释器开始执行之后,就在内存中开辟了一个空间,每当遇到一个变量的时候,就把变量名和值之间的对应关系记录下来. 但是当遇到函数定义的时候解释器只是象征性的将函数名读入内存, ...
- 如何理解javaSript中函数的参数是按值传递
本文是我基于红宝书<Javascript高级程序设计>中的第四章,4.1.3传递参数小节P70,进一步理解javaSript中函数的参数,当传递的参数是对象时的传递方式. (结合资料的个人 ...
- c#编程基础之函数可变参数
可变参数:int sum (params int[] values)int sum (string name,params int[] values) 注意:params参数必须是形参表中的最后一个参 ...
- 函数动态参数实现format
变量赋值一种是字符串格式化,一种是通过format的方式 1.字符串格式化 s="i am %s,age %d"%('Jasper',23)print(s) 打印输出:i am J ...
随机推荐
- Leetcode 807 Max Increase to Keep City Skyline 不变天际线
Max Increase to Keep City Skyline In a 2 dimensional array grid, each value grid[i][j] represents th ...
- 阿里巴巴(alibaba)系列_druid 数据库连接池_监控(一篇搞定)记录执行慢的sql语句
参考帖子:http://www.cnblogs.com/han-1034683568/p/6730869.html Druid数据连接池简介 Druid是Java语言中最好的数据库连接池.Druid能 ...
- 关于HTTP中GET与POST的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 看似很简单,其实是一道送命题 “标准答案”: GET在浏览器回退时是无害的,而POST会再次提交请求. ...
- react 阻止事件冒泡
前言 在学习react阻止事件冒泡,需要先了解 合成事件 和 原生事件 合成事件:在jsx中直接绑定的事件,就是合成事件: 原生事件: 通过js原生代码绑定的事件,就是原生事件: react事件:re ...
- 电脑一键U盘启动快捷键
下面是我特意列出的品牌电脑.笔记本电脑.组装电脑一键U盘启动快捷键对应列表,仅供大家查阅参考! [品牌-笔记本电脑] 笔记本品牌 启动按键 联想笔记本 F12 宏基笔记本 F12 华硕笔记本 ...
- PJSUA2开发文档--第八章 好友(Buddy)类
8 好友(存在)Buddy PJSUA2的功能是围绕Buddy类为中心展开的.该类表示一个远端好友(伙伴,一个人或一个SIP端点). 8.1 子类化Buddy类 要使用Buddy类,通常应创建子类, ...
- ORACLE中如何查找定位表最后DML操作的时间小结
在Oracle数据库中,如何查找,定位一张表最后一次的DML操作的时间呢? 方式有三种,不过都有一些局限性,下面简单的解析.总结一下. 1:使用ORA_ROWSCN伪列获取表最后的DML时间 ORA_ ...
- SQL 百万级数据提高查询速度的方法
----------------[转] 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描.2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 ...
- mssql 存储过程调用另一个存储过程中的结果的方法分享
转自:http://www.maomao365.com/?p=6801 摘要: 下文将分享"一个存储过程"中如何调用"另一个存储过程的返回结果",并应用到自身的 ...
- 爬虫之scrapy--基本操作
参考博客 :https://www.cnblogs.com/wupeiqi/p/6229292.html Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘, ...