Python学习笔记--函数进阶

news2024/10/5 15:28:24

(一) 函数多返回值

  • 按照返回值的顺序,写对顺序的多个变量接收即可
  • 变量之间用逗号隔开
  • 支持不同类型的数据return
    def test_return():
        return 1,2
     
    x,y = test_return()
    print(x)
    print(y)
    

    (二) 函数的多种传参方式

  • 函数参数种类:根据使用方式不同:分为以下4种

    1. 位置参数


  • 根据函数定义的参数位置来传递参数
    ! 传递的参数和定义的参数的顺序及个数必须一致

    2. 关键字参数


  • 函数调用时通过键值对的形式传递参数
    ! 函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序

    3. 缺省参数


  • 也称默认参数,用于定义函数,为函数提供默认值,调用函数时可不传该默认参数的值
    ! 所有位置参数必须出现在默认参数前,包括函数定义和调用

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

    4. 不定长参数


  • 也称可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。
    ! 当调用函数时不确定参数个数时,可以使用不定长参数。

    (1) 位置传递

    传进的所有参数都会被args变量收集,他会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是位置传递

    def user(*args):
        print(args)
    
    user('Belly',20,1)
    
    

    (2) 关键字传递

  • 参数是键值对形式,所有键值对都会被kwargs接受,同时根据键值对组成字典
    def user(**kwargs):
        print(kwargs)
     
    user(name = 'Belly',age = 20,sex = 1)
     
    
  •  

     

    (三) 匿名函数


  • 1. 函数作为参数传递


  • 函数本身可以作为参数,传入另一个函数中进行使用
    函数传入的作用在于:传入计算逻辑,而非传入数据


  • 2. lambda匿名函数


  • (1) 函数定义:

    def关键字:定义带有名称的函数(可以使用名称进行重复使用)
    lambda关键字:定义匿名函数(只可临时使用一次)
    (2) lambda基本语法:

    lambda 传入参数:函数体(一行代码)

    ! 函数体只可写一行代码,无法写多行

    def test(compute):
        result = compute(2,3)
        print(result)
     
    test(lambda x,y:x + y)

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/413341.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL批量更新的常用实践

MySQL批量更新的常用实践 批量更新一般在批处理系统或者定时任务中比较常见,常见的诉求就是对表中多条数据进行更新(待更新的值是不一样的,这个区别于update … where in(…)) 1.利用case … when … 方式批量更新 特点&#x…

5年碌碌无为,我终于从功能测试转到了自动化测试,薪资暴涨8K......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 自动化测试现已悄然…

JavaEE企业级应用开发教程——第十二章 Spring MVC数据绑定和相应(黑马程序员第二版)(SSM)

第十二章 Spring MVC数据绑定和相应 12.1 数据绑定 在 Spring MVC 中,当接收到客户端的请求时,会根据请求参数和请求头等信息,将参数以特定的方式转换并绑定到处理器的形参中,这个过程称为数据绑定。数据绑定的流程大致如下&…

Golang每日一练(leetDay0035) 二叉树专题(4)

目录 103. 二叉树的锯齿形层序遍历 Binary Tree Zigzag Level Order Traversal 🌟🌟 104. 二叉树的最大深度 Maximum Depth of Binary-tree] 🌟 105. 从前序与中序遍历序列构造二叉树 Construct-binary-tree-from-preorder-and-inorder-…

MySQL8.0的安装和配置

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

结合实际谈谈个人对代码优化的感想以及java优化

前言 本来想写一篇结合在实际工作中,自己去优化java代码的文章,用于记录便于复习提升自己的;但是在回想起自己在实际工作中诸多因素导致存在的问题(仅针对我个人),个人总结以及去证实了,所悟&am…

16. unity粒子特效---旋转 + 花瓣飞舞案例

1. 旋转模块(Rotation over Lifetime) 在主模块中也可以设置粒子的旋转角度,通过参数Start Rotation,不过这个参数设置的是粒子刚生成时的角度,后面不会发生变化。 使用旋转模块可以通过参数Angular Velocity进行设置…

十一、删除市场活动

功能需求 ①用户在市场活动主页面,选择要删除的市场活动,点击"删除"按钮,弹出确认窗口; ②用户点击"确定"按钮,完成删除市场活动的功能. ③*每次至少删除一条市场活动 ④*可以批量删除市场活动 ⑤*删除成功之后,刷新市场活动列表,显示第一页数据,保持…

如何规划自己的大一生活

大家好,我是帅地,在帅地的训练营里,有不少大一打二大学员,不少学员在大一就会数据结构,算法等学了,还参加了一些实验室项目,这主要得益于他们规划等早。 帅地在接下来的时间里,会写…

心累,网站被盗刷 1.7T 流量

小伙伴们大家好,我是阿秀。前几天我在上班摸鱼的时候忽然收到阿里云发来的邮件说账户欠费,服务停止同时也有人在群里说网站图片看不到了。我当时第一反应就是 OSS 套餐超了,因为以前也收到过类似的邮件,我去年双十一的时候买了一个…

JUC高级八-Java对象内存布局和对象头

JUC高级八-Java对象内存布局和对象头 1. 对象的内存布局 在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)(保证8个字节的倍数&#xff…

【java】泛型编程

文章目录泛型类泛型与多态泛型方法泛型界限设置上界设置下界类型擦除函数式接口Supplier供给型函数式接口Consumer消费型函数式接口Function函数型函数式接口Predicate断言型函数式接口判空包装泛型类 package com.test.entity; public class Score<T> {String name;Str…

一文搞懂Session和JWT登录认证

前言 目前在开发的小组结课项目中用到了JWT认证&#xff0c;简单分享一下&#xff0c;并看看与Session认证的异同。 登录认证&#xff08;Authentication&#xff09;的概念非常简单&#xff0c;就是通过一定手段对用户的身份进行确认。 我们都知道 HTTP 是无状态的&#xf…

模型实战(9)之YOLOv8预测模块predictor详解、预测视频后同时保存结果视频+目标帧

YOLOv8预测模块predictor详解、预测视频后同时保存结果视频+目标帧 Ultralytics YOLOv8Ultralytics YOLOv8是最新版本的YOLO对象检测和图像分割模型。 作为一种尖端的、最先进的(SOTA)模型,YOLOv8建立在以前版本的成功基础上,引入了新的功能和改进,以增强性能、灵活性和效率…

高速Serdes技术(FPGA领域应用)

目录引入一、Serdes&#xff08;概念-历程&#xff09;1、概念2、技术现状3、发展历程二、Serdes结构三、在FPGA领域中的运用四、Serdes跟Lvds的关系五、Xilinx 有关 serdes的文档六、参考文献引入 回顾接口技术发展历史&#xff0c;其实数据的传输最开始是低速的串行接口&…

202307读书笔记|《双向奔赴的爱,才是人间理想》——爱是双向奔赴,共同成长

《双向奔赴的爱&#xff0c;才是人间理想》作者燕七&#xff0c;读作者的第一本书是《鲸鱼安慰&#x1f433;了大海》可太美了&#xff0c;这次订阅通知这本&#xff0c;立马加入了书架&#xff0c;跑完步读了起来。没有第一本惊艳&#xff0c;但也不错&#xff0c;值得一读&am…

JavaScript对象的属性描述符(Property Descriptor)介绍

JavaScript对象的属性描述符&#xff08;Property Descriptor&#xff09;介绍 JavaScript 中的对象&#xff08;Object&#xff09;是一个包含相关数据和方法的集合&#xff0c;通常由一些变量和函数组成&#xff0c;我们称之为对象里面的属性&#xff08;property&#xff0…

java springboot工程RESTful入门案例 认识请求类型 参数

我们先创建一个java的springboot工程 然后 我们先用老方式试一下 在启动类的同级创建目录controller 下面创建一个类 叫 UserController 参考代码如下 package com.example.threshold.controller;import org.springframework.web.bind.annotation.GetMapping; import org.spri…

负载均衡与DNS轮询

负载均衡 load balance 负载均衡&#xff08;Load Balancing&#xff09;是一种将工作负载&#xff08;Workload&#xff09;分摊到多个计算资源&#xff08;服务器、存储设备、网络设备等&#xff09;上的技术&#xff0c;目的是提高系统的可用性、性能和扩展性。负载均衡可以…

序列化和反序列化二叉树 -----前序,中序,后序,层序

目录 一.序列化和反序列化 1.什么是序列化和反序列化 二.前序遍历 1.序列化 1.问题分析 2.代码实现 2.反序列化 1.问题分析 2.代码实现 三.后序遍历 1.序列化 1.思路分析 2.代码实现 2.反序列化 1.思路分析 2.代码实现 四.中序遍历 1.序列化 1.思路分析 2.代…