函数的返回值

1.什么是返回值:

返回值是一个函数的处理结果

2.为什么要有返回值

如果需要在程序中拿到函数的处理结果,做进一步的处理,则需要函数必须有返回值

3.函数返回值的应用:

函数的返回值用return定义

格式: return x

注意:1.return是一个函数结束的标志,可有多个return,但只要执行一次,函数就会结束运行

2.return的返回值五类型限制,可任意数据类型

3.返回值无个数限制,可用逗号分开多个任意类型的返回值

0个:返回None            1个:返回值就是值本身

多个:返回值为元组

4.不写return,默认会在最后return None

调用函数

1.什么是调用函数

函数名()  即调用,会执行函数体代码

2.为何要调用?

执行函数的功能

3.函数调用的三种形式

def count(x):

return x

1.普通:count(x)

2.放在运算中:count(x) * 10

3.作为参数调用:count(count(x))

函数参数的应用:

形参:在函数定义阶段括号内定义的参数,称为形参,本质是变量名

实参:在函数调用阶段括号内传入的值,称为实参,本质是变量的值

详细分类:

1.位置形参:在函数定义阶段,按从左到右的顺序依次定义的参数

特点:必须被传值,不可多,不可少

位置实参:在函数调用阶段,按从左到右的顺序依次定义的参数

特点:按照位置为对应的形参依次传值

2.关键字实参:按key:value传值,称关键字实参

特点:可以打破位置的限制,但仍能为指定的形参赋值

注意:1.可以混用位置参数与关键字实参,但位置实参必须在前面

2.可以混用,但不能对一个形参重复赋值

3.默认参数:在函数定义阶段,就已经为形参赋值

特点:在定义阶段已被赋值,意味着在调用时可以不为其赋值

def foo(x, y = 10):    y=10就是默认参数

pass

注意:1.位置形参必须放在默认参数前面

2.默认参数的值只在定义阶段赋值一次,即定义时就固定写死了

3.默认参数的值通常应该定义不可变类型

总结:实参的应用:可取决于个人的习惯

形参的应用:大多数情况下调用值都一样:默认参数

大多数情况下调用值不一样:位置参数

4.可变长参数:指的是在函数调用时:传入的参数个数可以不固定,而调用函数时,传值的方式无非两种,一种是位置实参,另一种是关键实参,所以对应着形参也必须有两种解决方案来分别接收溢出的位置实参(*)与关键字实参(**)

位置参数(*)

①.形参中*接收溢出的位置实数,然后存成元组的形式,赋值给*后的变量

②.实参中的参数也可以带*:

实参中带*,*会将该参数的值循环取出,打散成位置参数,但凡带*实参,它就是位置实参,应该打散成位置实参看

     约定俗成:形参中的*变量名的写法都是*args

关键字参数(**)

①.形参中的**会将溢出的关键字实参全部接收,然后存成字典的形式,赋值给**后的变量名

②.实参中带**,**会将该参数的值循环取出,打散成关键字实数,但凡带**的实参, 它就是关键字实参,应该打散成位关键字参看。**后必须是字典

  约定俗成:形参中的*变量名的写法都是**kwargs

  

应用:
def info(name,age,sex)
  print(name)
  print(age)
  print(sex)
def wrapper(*args,**kwargs):
  info(*args,**kwargs)
wrapper(‘egon’,18,’male,)
这样使用(*args,**kwargs)作为参数时,可以原封不动的把外部调用时的参数原封不动地 传给内部参数

  

python基础之return,参数的更多相关文章

  1. python基础——函数的参数

    python基础——函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复 ...

  2. Python基础之函数参数

    一.实参 1.实参分类: 2.实参基础代码: def fun01(a, b, c): print(a) print(b) print(c) # 位置传参:实参与形参的位置依次对应 fun01(1, 2 ...

  3. Python基础 --函数的参数

    定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解 ...

  4. python基础之带参数装饰器和迭代器

    带参数的装饰器:就是在原装饰器外再包一层函数 def auth(driver='file'): def auth2(func): def wrapper(*args,**kwargs): name=i ...

  5. python基础之函数参数、嵌套、返回值、对象、命名空间和作用域

    函数的使用原则 函数的使用必须遵循:先定义后使用的原则 函数的定义,与变量的定义是相似的,如果没有事先定义函数而直接引用就相当于在引用一个不存在变量名 定义阶段:只检测语法,不执行代码,当出现语法错误 ...

  6. Python基础之函数参数与返回值进阶

    参数作用:如果外界希望在函数内部处理数据,就可以将数据作为参数传入函数内部: 返回值作用:如果希望一个函数函数执行完成后,向外界报告函数的执行结果,就可以使用函数的返回值. 函数的返回值 进阶 利用元 ...

  7. python基础-4 函数参数引用、lambda 匿名函数、内置函数、处理文件

    上节课总结 1.三元运算 name=“name1”if 条件 else “name2” 2.深浅拷贝 数字.字符串 深浅,都一样 2.其他 浅拷贝:只拷贝第一层 深拷贝:不拷贝最后一层 3.set集合 ...

  8. python基础之函数参数,名称空间,以及函数嵌套

    函数进阶内容梗概: 1. 函数参数--动态传参 2. 名称空间, 局部名称空间, 全局名称空间, 作⽤用域, 加载顺序. 3. 函数的嵌套 4. gloabal , nonlocal 关键字 1. 函 ...

  9. python函数基础以及函数参数简解

    python中函数分为函数.内置函数Python所有的内置函数 自定义函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. ...

随机推荐

  1. 转:IOS 基于APNS消息推送原理与实现(JAVA后台)

    Push的原理: Push 的工作机制可以简单的概括为下图   图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple ...

  2. Kafka 0.8 Consumer设计解析

    摘要 本文主要介绍了Kafka High Level Consumer,Consumer Group,Consumer Rebalance,Low Level Consumer实现的语义,以及适用场景 ...

  3. Spring RedisTemplate操作-List操作(4)

    @Autowired @Resource(name="redisTemplate") private RedisTemplate<String, String> rt; ...

  4. 在Ubuntu14.04 64bit上搭建单机Spark环境,IDE为Intelli IDEA

    在Ubuntu14.04 64bit上搭建单机Spark环境,IDE为Intelli IDEA 一. 环境 Ubuntu14.04 64位    JDK 1.8.0_73    scala-2.10. ...

  5. [机器学习&数据挖掘]机器学习实战决策树plotTree函数完全解析

    在看机器学习实战时候,到第三章的对决策树画图的时候,有一段递归函数怎么都看不懂,因为以后想选这个方向为自己的职业导向,抱着精看的态度,对这本树进行地毯式扫描,所以就没跳过,一直卡了一天多,才差不多搞懂 ...

  6. hibernate的一对多和多对一关联

    一对一的关联就不写了,一般项目也用不到,如果可以一对一就直接合成一个表了,也不会出现一对一的关系. 本文主要研究一对多的关系. 1.一对多的关系研究: (1)RDB中关系表达:  多的一方创建外键指向 ...

  7. 洛谷 P5206: bzoj 5475: LOJ 2983: [WC2019] 数树

    一道技巧性非常强的计数题,历年WC出得最好(同时可能是比较简单)的题目之一. 题目传送门:洛谷P5206. 题意简述: 给定 \(n, y\). 一张图有 \(|V| = n\) 个点.对于两棵树 \ ...

  8. 直接读取修改exe文件

    1. 前言 配置器的编写有很多的方式,主要是直接修改原始的受控端的程序,有的方式是把受控端和配置信息都放到控制端程序的内部,在需要配置受控端的时候直接输入配置信息,生成受控端:也有的方式是在外部直接修 ...

  9. MDP安装之数据库

    /usr/bin/mysqladmin -u root password 'Bic2017' mysql-community-client-5.6.28-2.el6.x86_64 mysql-comm ...

  10. tomcat启动报错:Injection of autowired dependencies failed

    tomcat启动报错:Injectjion of autowired dependencies failed 环境: 操作系统:centos6.5 tomcat: 7.0.52 jdk:openjdk ...