首页 > 编程语言 >上手Python之函数进阶

上手Python之函数进阶

时间:2022-10-29 15:33:35浏览次数:43  
标签:return 函数 Python 缺省 传递 关键字 参数 上手 进阶


函数多返回值

问: 如果一个函数如些两个return (如下所示),程序如何执行

上手Python之函数进阶_python

答:只执行了第一个return,原因是因为return可以退出当前函数, 导致return下方的代码不执行 

多个返回值

如果一个函数要有多个返回值,该如何书写代码?

上手Python之函数进阶_服务器_02

按照返回值的顺序,写对应顺序的多个变量接收即可

变量之间用逗号隔开

支持不同类型的数据return 

函数多种传参方式 

函数参数种类

使用方式上的不同, 函数有4中常见参数使用方式:

位置参数 关键字参数 缺省参数 不定长参数

位置参数

位置参数:调用函数时根据函数定义的参数位置来传递参数

上手Python之函数进阶_java_03

注意:      

传递的参数和定义的参数的顺序及个数必须一致 

关键字参数

关键字参数:函数调用时通过“键=值”形式传递参数.

作用: 可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求.

上手Python之函数进阶_python_04

注意:        

函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序 

缺省参数

缺省参数:缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用).

作用: 当调用函数时没有传递参数, 就会使用默认是用缺省参数对应的值.

上手Python之函数进阶_服务器_05

注意:       

函数调用时,如果为缺省参数传值则修改默认参数值, 否则使用这个默认值 

不定长参数

不定长参数:不定长参数也叫可变参数. 用于不确定调用的时候会传递多少个参数(不传参也可以)的场景.

作用: 当调用函数时不确定参数个数时, 可以使用不定长参数

不定长参数的类型:      ①位置传递      ②关键字传递

上手Python之函数进阶_服务器_06

注意:      

参数是“键=值”形式的形式的情况下, 所有的“键=值”都会被kwargs接受, 同时会根据“键=值”组成字典. 

匿名函数

函数作为参数传递

在前面的函数学习中,我们一直使用的函数,都是接受数据作为参数传入:

数字 字符串 字典、列表、元组等

其实,我们学习的函数本身,也可以作为参数传入另一个函数内。

如下代码:

上手Python之函数进阶_python_07

 函数compute,作为参数,传入了test_func函数中使用。

test_func需要一个函数作为参数传入,这个函数需要接收2个数字进行计算,计算逻辑由这个被传入函数决定

compute函数接收2个数字对其进行计算,compute函数作为参数,传递给了test_func函数使用

最终,在test_func函数内部,由传入的compute函数,完成了对数字的计算操作

所以,这是一种,计算逻辑的传递,而非数据的传递。 就像上述代码那样,不仅仅是相加,相见、相除、等任何逻辑都可以自行定义并作为函数传入。

标签:return,函数,Python,缺省,传递,关键字,参数,上手,进阶
From: https://blog.51cto.com/u_15786786/5806143

相关文章

  • python题目:计算今天是一年当中的第多少天【多测师_王sir】【杭州多测师】
    python题目:计算今天是一年当中的第多少天importdatetimey=int(input('请输入4位数字的年份:'))#获取年份m=int(input('请输入月份:'))#获取月份d=int(input......
  • python 的多行输入
    a,b=input().split("")#输入字符串(默认返回类型)a和b以(空格)分隔a,b,c=eval(input())#输入三个值(任何类型)中间由逗号分隔a,b,c=int(input())......
  • 基于python指定包的安装路径方法(linux)
    通常python安装包都会被默认装在/usr/local/pythonx/lib/site-packages(linux),但是我们有时想自定义包的安装路径,比如自己项目的某个路径,这样在部署的时候就不用再安装了,大......
  • RabbitMQ 进阶 -- 阿里云服务器部署RabbitMQ集群
    一、为什么要搭建RabbitMQ集群?未部署集群的缺点如果RabbitMQ集群只有一个broker节点,那么该节点的失效将导致整个服务临时性的不可用,并且可能会导致message的丢失(尤其是在非......
  • 查看python中安装包的一些信息
    1.piplist  #列出当前环境中的所有安装包2. pipindexversionsxxx  #展示包的所有版本信息3. pipshowxxx  #展示包的当前版本的详细信息 4.pipin......
  • python自学 简单的网站开发 3
    创建子路由1.项目过大的时候,总路由不宜放过多的配置文件,可以把总路由的配置放置到子路由里面去。先在myapp中新增一个url.py的文件。 2.然后把总路由的内容放到u......
  • python的魔法
    python的魔法方法比较多。在此处,我将使用类编程的方式串联各种魔法方法的应用1.初始化创建类以及格式化输出__init__;__repr__;__str__; 解析:__init__这是一个函......
  • python 安装 jieba分词第三方库 报错 以及解决
      在安装jieba第三方库的时候,Python报错pip._vendor.urllib3.exceptions.ReadTimeoutError:HTTPSConnectionPool(host='files.pythonhosted.org',port=443):Readt......
  • Python 实例方法、类方法、静态方法之间的区别及实例说明
    类方法定义:使用装饰器@classmethod。第一个参数为“cls”(也可为self),通过它来传递类的属性和方法(不能传实例的属性和方法,即使第一个参数为self,传递的也是类的属性和方......
  • golang 学习入门项目(超适合新手入门,新手进阶)
    过年的疫情,让我有了时间整理自己的博客。这篇是关于如何学习golang这门语言的。实例代码一分享到github点击获取源码 ​​github学习golang​​本项目是个gogin框架写的......