day 6 返回值,参数
1.函数返回值
In [3]: def divid(a,b):
...: shang = a//b
...: yushu = a%b
...: return shang,yushu
...: In [4]: sh, yu = divid(5,2) #元组方式返回 (2,1) In [5]: sh
Out[5]: 2 In [6]: yu
Out[6]: 1
2.缺省参数和命名参数
缺省参数,使用默认的值,
只能放到最后
命名参数,必须使用形参的变量名a,b,c


3.不定长参数 args ,元组
#### 两天的营业额
def add(a,b):
result = a + b
print(result) add(11,22)
我想把每天的营业额加起来,但是有时开业5天,有时候开业7天
变量就是args 只不过加了标记*
元组:切记一个元素的写法(33,)
def add(a,b,*args):
print("------")
print(a)
print(b)
print(args)
#result = a + b
#print(result) add(11,22,55,66,77,88) #(55,66,77,88)
add(11,22,33) #(33,)
add(11,22) #()
add(11) #报错 形参b没有值

计算多个数的值
1)版本1:我的
def add(a,b,*args):
result = a + b
print(a,b,args)
for temp in args:
result = temp + result
print(result)
add(1,12,23,34,45,55,66,77,88,99)

2)版本2:老师的
def add(a,b,*args):
print("-"*30)
print(a)
print(a)
print(*args) result = a+b
for temp in args:
result += temp print("result=%d"%result) add(11,22)
add(11,22,33)
add(11,22,33,44,55,66)

4.不定长参数,kwargs, 命名参数的,字典
#最复杂的带参数的
def test(a,b,c=33,*args,**kwargs):
print(a) #必须传递的参数a,b
print(b)
print(c) #可选的 c
print(args) #*多余的没有名字的 args
print(kwargs) #**多余的有名字的 kwargs test(11,22,33,44,55,66,task=99,done=98)

5.拆包 * **
把元组拆成一个个,当成参数传递
把字典拆成一对对键值对,当成参数传递
###### 拆包之前
def test(a,b,c=33,*args,**kwargs):
print(a)
print(b)
print(c)
print(args)
print(kwargs) #test(11,22,33,44,55,66,task=99,done=98) A = (44,55,66)
B = {"name":"alex","age":18} test(11,22,33,A,B) #### 运行结果
11
22
33
((44, 55, 66), {'age': 18, 'name': 'alex'}) #A,B是传递的参数
{} #没有传入命名参数
#### 拆包之后
def test(a,b,c=33,*args,**kwargs):
print(a)
print(b)
print(c)
print(args)
print(kwargs) #test(11,22,33,44,55,66,task=99,done=98) A = (44,55,66)
B = {"name":"alex","age":18} test(11,22,33,*A,**B) #### 运行结果
11
22
33
(44, 55, 66)
{'age': 18, 'name': 'alex'}
day 6 返回值,参数的更多相关文章
- c++特性:指向类成员的指针和非类型类模板参数和函数指针返回值 参数推导机制和关联型别
一.c++允许定义指向类成员的指针,包括类函数成员指针和类数据成员指针 格式如下: class A { public: void func(){printf("This is a funct ...
- Python的函数, 返回值, 参数
1. 函数 函数是对功能的封装 语法: def 函数名(形参): 函数体(代码块,return) 调用: 函数名(实参) 2. 返回值 return:在函数执行的时候, 遇到return 就直接返回, ...
- day09 python函数 返回值 参数
day09 python 一.函数 1.函数 函数是对功能的封装 语法: 定义函数: def 函数名(形参): ...
- C++ Name Mangling 为什么不编码返回值参数
这篇文章主要是推荐下 http://www.cnblogs.com/skynet/archive/2010/09/05/1818636.html 这篇文章从编译器的角度看问题,比较深入. 回到题目,为 ...
- 04 python学习笔记-函数、函数参数和返回值(四)
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print(),我们也可以自己创建函数,这叫做用户自定 ...
- .net 接收存储过程的返回值 。。。。
.net 接收存储过程的返回值 .... Posted on 2009-06-10 20:26 且行且思 阅读(...) 评论(...) 编辑 收藏 例如在向数据库添加新数据时,需要检测是否有重复 本 ...
- SubSonic3.0使用存储过程查询时,不能使用output参数返回值的问题修改
有个群友问SubSonic3.0执行存储过程时能不能使用output参数返回值,说测试过后获取不到返回值,早上有些时间所以就尝试修改了一下 首先在数据库中创建一个存储过程 CREATE PROCEDU ...
- Swift 定义函数 参数 返回值
定义多参数函数 - 用func声明函数 func name(parameters) -> return type { function body } func halfOpenRangeLen ...
- java方法强制传递引用参数(做为返回值),改变被传递参数值。
Java传递参数分为2种: 值类型,Java里面也叫简单类型,这种参数类型的传递的是它的副本拷贝: 引用类型,传递的是对象引用地址,如果在方法内改变该参数对象属性即是对原引用对象的改变:如果不想这样传 ...
- 基础才是重中之重~Emit动态构建方法(参数和返回值)
回到目录 对于Emit我们知道它的可以动态构建程序集,类型,方法,属性等,或者说只要手动使用C#创建的东西使用Emit也都可以动态创建它们,Emit由于它的特别之处,所以在很多领域得到了广泛的应用,像 ...
随机推荐
- JavaScript 数组遍历方法的对比
JavaScript 发展至今已经发展出多种数组的循环遍历的方法,不同的遍历方法运行起来那个比较快,不同循环方法使用在那些场景,下面将进行比较: 各种数组遍历的方法 for 语句 ,,,] , len ...
- gluoncv voc_detection
https://github.com/zhreshold/gluon-cv/commit/73b3986aaa2e0d0e6f3f428c12072e3a9d29905e gluoncv可能版本还没更 ...
- 【[SCOI2010]序列操作】
好颓啊,我竟然来写了一道恶心的板子 旁边的魏佬嘲讽我,还用欺负我 嘤嘤嘤 那就不膜魏佬了 嘤嘤嘤 这是一道无聊的板子 看到这些操作,我们看到这些操作就知道我们需要维护的东西了 首先那个最长的连续的\( ...
- 通过iframe标签绕过csp
iframe.php代码如下: allow-popups开启时,window.open就可以打开新的窗口. 看csp规则,默认是在当前域内,如果这是一个ctf题的话,就很简单了,window.loca ...
- Hadoop学习之路(二十七)MapReduce的API使用(四)
第一题 下面是三种商品的销售数据 要求:根据以上数据,用 MapReduce 统计出如下数据: 1.每种商品的销售总金额,并降序排序 2.每种商品销售额最多的三周 第二题:MapReduce 题 现有 ...
- 2、Android-UI(常用控件)
2.1.如何编写程序页面 Android中有许多编写程序的方式可供选择 Android Studio和Eclipse中都提供了响应的可视化编辑器 可以直接再进行拖动创建布局 推荐使用手动编写方式进行开 ...
- 3、Spring Cloud - Eureka(构建服务端/客户端)
3.1.Eureka简介 3.1.1.什么是 Eureka 和Consul.Zookeeper 类似, Eureka 是一个用于服务注册和发现的组件,最开始主要应用 于亚马逊公司旗下的云计算服务平台 ...
- leetcode300. Longest Increasing Subsequence 最长递增子序列 、674. Longest Continuous Increasing Subsequence
Longest Increasing Subsequence 最长递增子序列 子序列不是数组中连续的数. dp表达的意思是以i结尾的最长子序列,而不是前i个数字的最长子序列. 初始化是dp所有的都为1 ...
- Java8 Stream()关于在所有用户的所有上传记录中,找出每个用户最新上传记录
原创文章:转载请标明出处 https://www.cnblogs.com/yunqing/p/9504196.html 首先分析相当于如下,在所有的猫中,每个名字的猫都保留年龄最小的一个 import ...
- oracle基础教程oracle客户端详解
oracle基础教程oracle客户端工具详解 参考网址:http://www.oraclejsq.com/article/010100114.html 该教程介绍了oracle自带客户端sqlplu ...