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 返回值,参数的更多相关文章

  1. c++特性:指向类成员的指针和非类型类模板参数和函数指针返回值 参数推导机制和关联型别

    一.c++允许定义指向类成员的指针,包括类函数成员指针和类数据成员指针 格式如下: class A { public: void func(){printf("This is a funct ...

  2. Python的函数, 返回值, 参数

    1. 函数 函数是对功能的封装 语法: def 函数名(形参): 函数体(代码块,return) 调用: 函数名(实参) 2. 返回值 return:在函数执行的时候, 遇到return 就直接返回, ...

  3. day09 python函数 返回值 参数

    day09 python   一.函数     1.函数         函数是对功能的封装         语法:         定义函数:             def 函数名(形参):    ...

  4. C++ Name Mangling 为什么不编码返回值参数

    这篇文章主要是推荐下 http://www.cnblogs.com/skynet/archive/2010/09/05/1818636.html 这篇文章从编译器的角度看问题,比较深入. 回到题目,为 ...

  5. 04 python学习笔记-函数、函数参数和返回值(四)

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print(),我们也可以自己创建函数,这叫做用户自定 ...

  6. .net 接收存储过程的返回值 。。。。

    .net 接收存储过程的返回值 .... Posted on 2009-06-10 20:26 且行且思 阅读(...) 评论(...) 编辑 收藏 例如在向数据库添加新数据时,需要检测是否有重复 本 ...

  7. SubSonic3.0使用存储过程查询时,不能使用output参数返回值的问题修改

    有个群友问SubSonic3.0执行存储过程时能不能使用output参数返回值,说测试过后获取不到返回值,早上有些时间所以就尝试修改了一下 首先在数据库中创建一个存储过程 CREATE PROCEDU ...

  8. Swift 定义函数 参数 返回值

    定义多参数函数 - 用func声明函数  func name(parameters) -> return type { function body } func halfOpenRangeLen ...

  9. java方法强制传递引用参数(做为返回值),改变被传递参数值。

    Java传递参数分为2种: 值类型,Java里面也叫简单类型,这种参数类型的传递的是它的副本拷贝: 引用类型,传递的是对象引用地址,如果在方法内改变该参数对象属性即是对原引用对象的改变:如果不想这样传 ...

  10. 基础才是重中之重~Emit动态构建方法(参数和返回值)

    回到目录 对于Emit我们知道它的可以动态构建程序集,类型,方法,属性等,或者说只要手动使用C#创建的东西使用Emit也都可以动态创建它们,Emit由于它的特别之处,所以在很多领域得到了广泛的应用,像 ...

随机推荐

  1. Object-C中对“引用(reference)”的理解

    http://blog.csdn.net/csz0102/article/details/25984275 注:以下讨论都是在ARC模式下 我们在iOS开发中最经常碰到的“引用(reference)” ...

  2. Python 多线程 线程安全、daemon简介 (四)

    线程安全 只能在Winodws下的ipython中演示,Python命令行.Pycharm.Mac下的ipython都演示不出效果 import threading def worker(): for ...

  3. sublime text3插件的安装

    1.安装Package Control提示Package Control:There are no packages available for installation, 解决方案:删除Packag ...

  4. IntelliJ IDEA编写的spark程序在远程spark集群上运行

    准备工作 需要有三台主机,其中一台主机充当master,另外两台主机分别为slave01,slave02,并且要求三台主机处于同一个局域网下 通过命令:ifconfig 可以查看主机的IP地址,如下图 ...

  5. sys,os加glob加os.path用法

    1   sys.path是python的搜索模块的路径集,是一个list 打印下大概长这样 C:\Python27\Lib\idlelib C:\Windows\system32\python27.z ...

  6. SpringBoot+MyBatis中自动根据@Table注解和@Column注解生成ResultMap

    其实我一点都不想用mybatis,好多地方得自己写,比如这里. 使用mybatis要写大量的xml,烦的一批.最烦人的莫过于写各种resultmap,就是数据库字段和实体属性做映射.我认为这里应该是m ...

  7. HDU 1069 Monkey and Banana(转换成LIS,做法很值得学习)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 Monkey and Banana Time Limit: 2000/1000 MS (Java ...

  8. initUrl方法

    private String initUrl(String preurl,String taskurl) { if(JavaUtil.match(taskurl, "/[a-z]+$&quo ...

  9. 404 Note Found 队-Alpha 事后诸葛亮

    目录 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结: 本小组和其他组的评分 分工和贡献分 全组讨论的照片 问题 第一组提问回答:爸爸饿了队 第二组提问回答:拖 ...

  10. CentOS7.2安装RabbitMQ笔记

    身为.NET程序员,用着宇宙级IDE,干什么事都变得越来越懒了,Windows操作系统在手,能通过桌面点点点的方式何必找其他罪受呢..于是RabbitMQ自然而然也就跑在Windows上了,说实话Wi ...