Python入门到精通(六)——Python函数进阶

Python函数进阶

一、函数的多返回值

二、函数多种传参方式

1、位置参数

2、关键字参数

3、缺省参数

4、不定长参数

(1)位置传递

(2)关键字传递

三、匿名函数

(1)函数作为参数传递

(2)lambda匿名函数


一、函数的多返回值

如果一个函数出现了两个return,只可以执行第一个return,因为return可以退出当前函数,导致return下方代码不执行

1、定义

  • 按照返回值的顺序,写对应顺序的多个变量接收即可
  • 变量之间用逗号隔开
  • 支持不同类型的数据return

代码示例

def test_return():return 1, 2, 3x, y, z = test_return()
print(y)  # 2

 

二、函数多种传参方式

1、位置参数

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

代码示例

# 位置参数
def user_info(name, age, gender):print(f"姓名是{name},年龄是{age},性别是{gender}")user_info("m", 23, "女")  # 姓名是m,年龄是23,性别是女

2、关键字参数

  • 函数调用时通过“键=值”形式传递参数.
  • 可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求.
  • 函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序

代码示例

# 关键字参数
def user_info(name, age, gender):print(f"姓名是{name},年龄是{age},性别是{gender}")user_info(gender="女", age=23, name="m")  # 姓名是m,年龄是23,性别是女

3、缺省参数

  • 缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用).
  • 当调用函数时没有传递参数, 就会使用默认是用缺省参数对应的值.
# 缺省参数(默认值必须写在最后面)
def user_info(name, age, gender='女'):print(f"姓名是{name},年龄是{age},性别是{gender}")user_info("m", 24)  # 姓名是m,年龄是24,性别是女

4、不定长参数

  • 不定长参数也叫可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景
  • 当调用函数时不确定参数个数时, 可以使用不定长参数
(1)位置传递
  • *号标记一个形式参数,传进的所有参数都会args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是位置传递

代码示例

# 位置传递
def user_info(*args):print(args)user_info('CSDN')  # ('CSDN',)
user_info('CSDN', 2024)  # ('CSDN', 2024)
(2)关键字传递
  • 参数是“键=值”形式的形式以*号标记一个形式参数
  • 关键字不定长传递以**号标记一个形式参数,以字典的形式接受参数,形式参数一般命名为kwargs

代码示例

# 关键字传递
def user_info(**kwargs):print(kwargs)user_info(name='momo_via', year=2024)  # {'name': 'momo_via', 'year': 2024}

三、匿名函数

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

代码示例

# 函数作为参数传递
def test_func(compute):result = compute(1, 2)  # 确定compute是函数print(f"计算结果:{result}")# 定义一个函数,准备作为参数传入另一个函数
def compute(x, y):return x + y# 调用,并传入函数
test_func(compute)  # 计算结果:3
(2)lambda匿名函数

  • 匿名函数用于临时构建一个函数,只用一次的场景
  • 匿名函数的定义中,函数体只能写一行代码,如果函数体要写多行代码,不可用lambda匿名函数,应使用def定义带名函数
# lambda匿名函数
def test_func(compute):result = compute(1, 2)  # 确定compute是函数print(f"计算结果:{result}")test_func(lambda x, y: x + y)  # 计算结果:3

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

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

相关文章

通过Demo学WPF—数据绑定(一)✨

前言✨ 想学习WPF,但是看视频教程觉得太耗时间,直接看文档又觉得似懂非懂,因此想通过看Demo代码文档的方式进行学习。 准备✨ 微软官方其实提供了WPF的一些Demo,地址为:microsoft/WPF-Samples: Repository for WPF …

day25 日期对象

日期对象 日期对象:用来表示时间的对象作用:可以得到当前系统时间 实例化 在代码中发现了new关键字时,一般将这个操作称为实例化创建一个时间对象并获取时间(可以用于计算倒计时) 获得当前时间const date new Date…

QT 使用XML保存操作记录

文章目录 1 实现程序保存操作记录的思路2 XML文档基本结构3 QDomDocument实现XML读写3.1 QDomDocument实现生成XML文件3.2 QDomDocument实现读取XML文件 4 QXmlStreamWriter实现读写4.1 QXmlStreamWriter实现生成XML4.2 QXmlStreamWriter实现读取XML 1 实现程序保存操作记录的思…

【linux】-centos7版本前后-变化篇

1.centos7版本前后区别 首先文件系统变化,由EXT4,变为XFS格式。可支持容量500TB的文件,而6代仅能支持16TB。首个进程变为systemd, 替换了熟悉的init进程。它的特点是功能强大,体积也很强大。 systemd给我们带来了一个全家桶命令&…

【linux】磁盘空间不足-常用排查和处理命令

【linux】磁盘空间不足-常用排查和处理命令 1.通查一下 df -h #查看服务器磁盘空间情况 du -hs * 2>/dev/null #列出各目录所占空间大小 或 du -h -d 1 2>/dev/null #列出各目录所占空间大小 1.1情况一 df 磁盘空间和du 目录空间占用相等&#xff0c…

C# 二分搜索(Binary Search)

二分搜索概念 二分查找也称折半查找(Binary Search)它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 二分搜索的背景 二分搜索法的概念和思想可以追溯到古代的中国和…

【python】求矩阵的特征值和特征向量

使用np.linalg.eig同时求特征值和特征向量 import numpy as np#输入矩阵 A np.array([[1, 1/2, 1/6, 1/9],[2, 1, 1/3, 1/5],[6, 3,1,1/2],[9, 5,2,1]])#求解特征值和其对应的特征向量 eigval,eigvec np.linalg.eig(A) for i in range(len(eigval)):print(f特征值&#xff1a…

STM32学习笔记一——初识STM32

目录 一、什么是ARM 二. Cortex 内核 三.什么是STM32 四.STM32核心板原理图: 五.STM32的内部结构: 六.stm32系统结构简化图 STM32基本原理分析: 七.典型型号——STM32F103ZET6 stm32——32位单片机(数据总线是32位的&am…

文献速递:人工智能医学影像分割--- 深度学习分割骨盆骨骼:大规模CT数据集和基线模型

文献速递:人工智能医学影像分割— 深度学习分割骨盆骨骼:大规模CT数据集和基线模型 我们为大家带来人工智能技术在医学影像分割上的应用文献。 人工智能在医学影像分析中发挥着至关重要的作用,尤其体现在图像分割技术上。这项技术的目的是准…

Golang 流媒体服务器lalserver使用指南

目录 安装 使用 1.推流 2.播放 官方地址 安装 1.下载源码 wget https://github.com/q191201771/lal/releases/download/v0.36.7/lal_v0.36.7_linux.zipunzip lal_v0.36.7_linux.zip cd lal_v0.36.7_linux 2.启动 ./bin/lalserver -c ./conf/lalserver.conf.json 使用 …

浅谈直流电表在韩国充电桩生产厂家的应用

I.背景: 近几年为应对温室气体的排放导致的全球变暖、气候变化等问题,各大国纷纷对焦推进电动汽车,从而减少传统燃油汽车带来的大量温室气体排放。而推进新能源汽车的各项举措之中,充电桩的基础建设,又是其中的重中之重&#xff…

AR眼镜_ar智能眼镜显示方案|光学方案

AR眼镜是一种智能眼镜,能够将虚拟现实和现实世界相结合,使人们能够在日常生活中体验和参与虚拟现实。然而,AR智能眼镜的制造成本高,开发周期长。要实现AR眼镜的各项功能,需要良好的硬件条件,而AR智能眼镜的…

ssl证书更换步骤及更换后有效期没有更新问题

因公司ssl证书到期,在阿里云申请免费证书更换后,查看证书有效期,发现有效期没有更新。 ssl证书更换步骤: 1.下载nginx证书文件 2.服务器上替换原有ssl证书(操作前记得备份) 3.更改nginx.conf文件中证书路径…

聚势合力 共创高峰”2023思腾合力成都客户答谢会

聚势合力 共创高峰”为主题的思腾合力成都答谢会,在成都都江堰皇冠假日酒店盛大举行,来自各地的客户齐聚于此,共同见证思腾合力的成长与突破,展望未来的合作与发展。 思腾合力总经理王伟热情洋溢的致辞拉开活动序幕。他表达了对所…

wsl-ubuntu 安装 nginx

wsl-ubuntu 安装 nginx 1. 安装 nginx2. 确认 nginx 启动状态3. 重启 nginx4. 停止 nginx 1. 安装 nginx sudo apt install nginx2. 确认 nginx 启动状态 systemctl status nginx3. 重启 nginx systemctl restart nginx4. 停止 nginx systemctl stop nginx完成!…

pve宿主机更改网络导致没网,pve更改ip

一、问题描述 快过年了,我把那台一直在用的小型服务器,带回去了,导致网络发生了变更,需要对网络进行调整,否则连不上网,我这里改的是宿主机,不是pve虚拟机中的系统。 二、解决方法 pve用的是…

[GN] 设计模式——面向对象设计原则概述

文章目录 面向对象设计原则概述单一职责原则开闭原则里氏代换原则依赖倒转原则接口隔离原则合成复用原则迪米特法则 总结 提示:以下是本篇文章正文内容,下面案例可供参考 面向对象设计原则概述 单一职责原则 一个类只负责一个功能领域中的相应职责 类…

蓝桥杯---加法变乘法

我们都知道:123 ….. 491225,现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015 比如:123 ... 10*1112 ... 27*2829 ... 492015 就是符合要求的答案. 请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是 提交10)…

动手学深度学习(一)深度学习介绍1

目录 一、引言 1.日常生活中的机器学习: 2.机器学习中的关键组件: 2.1 数据: 2.2 模型: 2.3 目标函数: 2.4 优化算法: 3. 各种机器学习问题: 3.1 监督学习: 3.1.1 回归&…

MGRE实验报告二

实验要求: 实验预览图: 实验分析: 1、对R1-R5配置IP地址,同时R1-R5每个路由器各有一个环回 2.1、对R1、R3、R4路由器开启虚拟接口1,分别配置隧道IP、接口封装协议,接口类型、定义封装源、开启伪广播功能&…