python基础——函数进阶【多个返回值,多种传参方式,匿名函数】

📝前言:
这篇文章主要记录一下在python中,关于函数的进阶常用知识,建议对编程中的函数有一定了解的读者阅读,如果想了解一下函数的最基础内容,也可先看这篇文章C语言——函数
在本文,我会主要讲解有关函数的下面几个知识:
1,函数的多个返回值
2,函数的多种传参方式
3,匿名函数

🎬个人简介:努力学习ing
📋个人专栏:C语言入门基础以及python入门基础
🎀CSDN主页 愚润求学
🌄每日鸡汤:焚膏继晷,兀兀穷年


文章目录

  • 一,函数的多个返回值
  • 二,函数的多种传参方式
    • 1,位置参数
    • 2,关键字参数
    • 3,缺省参数
    • 4,不定长参数
      • (1)位置传递(*)
      • (2)关键字传递(**)
  • 三,匿名函数

一,函数的多个返回值

我们都知道用return可以接受函数的返回值,有意思的是,在 python 中,一个函数可以返回多个值,并且这些返回值可以是不同类型的。
这在实际上相当于返回一个元组(tuple),但为了使代码更具可读性,Python 允许你直接返回多个值,而不需要显式地创建一个元组。当我们接收多个返回值的时候,我们需要用对应数量的变量来接受。

如下:

def get_name_and_age():name = "Alice"age = 25return name, age  # 这会返回一个元组 (('Alice', 25),)name, age = get_name_and_age()
print(name)
print(age)

在上面的例子中,get_name_and_age 函数返回了两个值:nameage。在调用该函数时,我们使用逗号分隔符来接收这两个返回值,并将它们分别赋值给 nameage 变量。

二,函数的多种传参方式

在python中,函数有多种传参方式。使用方式的不同,函数中有4种常见参数使用方法:
1,位置参数;2,关键字参数;3,缺省参数;4,不定长参数
下面,我们就来依次讲解一下这四种不同的参数

1,位置参数

python 中的位置参数是最基本和最常见的参数类型。它们按照在函数定义中的位置传递,不需要使用参数名称来指定。(传递的参数和定义的参数的顺序及个数必须一致)

以下是一个简单的示例来说明如何使用位置参数:

def greet(name, age):print(f"Hello {name}, you are {age} years old!")# 使用位置参数调用函数(按顺序传参)
greet("Alice", 25)

在这个例子中,nameage 都是位置参数。它们按照它们在函数定义中的位置传递。

2,关键字参数

关键字传参:函数调用时,通过“键=值”的形式传递参数
作用:可以让函数更加清晰、容易使用,同时也清除了参数的顺需求。
注意:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面

如下:

def user_info(name,age,gender):print(f"您的名字是:{name},年龄是:{age},性别是:{gender}")# 关键字传参
user_info(name="小明", age=20, gender="男")# 可以不按照固定顺序
user_info(age=20, gender="男", name="小明")# 可以和位置参数混用,但是位置参数必须在前,且位置参数要匹配参数顺序
user_info("小明", age=20, gender="男")

3,缺省参数

在python中,缺省参数(也称为默认参数)是在函数定义中为参数提供的默认值。当函数调用中未提供该参数的值时,将使用该默认值。(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用,默认参数要放在最后)

例如,考虑以下函数定义,该函数接受一个可选的age参数,并提供一个默认值:

def greet(name, age=25):print(f"Hello, {name}! You are {age} years old.")

在这个函数中,name是必需的位置参数,而age可选的,其默认值为25。
我们可以调用这个函数,而不提供age参数,如下所示:

greet("Alice")         # 输出: Hello, Alice! You are 25 years old.

我们还可以提供age参数的值,如下所示:

greet("Bob", 30)      # 输出: Hello, Bob! You are 30 years old.

在这个例子中,我们使用默认参数age来简化函数调用,使其更易于使用。
我们不需要在每次调用函数时都提供age参数,除非我们想要覆盖默认值
当我们不想使用默认值时,只需提供age参数,并为其赋值即可

4,不定长参数

不定长参数:不定长参数也叫可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。
当我们调用函数时不确定参数个数时,就可以使用不定长参数

不定长参数又分两种:用于位置传递(*) 和 用于关键字传递(**

(1)位置传递(*)

当使用一个星号*在函数参数中时,它表示收集位置参数,将其放入一个元组中。这允许你在函数中使用多个参数,而不需要明确指定每个参数的名称。
在函数调用中,你可以使用任意数量的位置参数,例如:

def print_all(*args):for arg in args:print(arg)
print_all(1, 2, 3, 4, 5)

在这里*args就是用于位置传递的不定长参数,当我们传入任意数量的位置参数时,都会被*args接收

(2)关键字传递(**)

当使用两个星号**在函数参数中时,它表示收集关键字参数,将其放入一个字典中。这允许你在函数中使用多个参数,而不需要明确指定每个参数的名称。
在函数调用中,你可以使用任意数量的关键字参数,例如:

def print_key_values(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")
print_key_values(name="Alice", age=25, country="US")

这里的**kwargs就是用于传递关键字的不定长参数,当我们传入任意数量的关键字参数时,都会被**kwargs接收,同时会根据“键=值”来组成字典

注意:一般情况下(没有特殊需求),我们在使用不定长参数时,形参都用*args**kwargs来命名(这是规范)

三,匿名函数

在 python 中,匿名函数是没有名字的函数,它们通常用于需要一个函数对象的场景,但不需要为这个函数对象起一个名字。
匿名函数也被称为 lambda 函数,因为它们可以写作 lambda 表达式。

但是要注意:
1,这种函数只能被使用一次。
2,只能有一条语句,无法包含多条语句。
3,会自动返回结果,无法使用return语句

lambda函数的语法如下:

lambda arguments: expression

其中 arguments 是传递给函数的参数,而 expression 是要计算的表达式。

下面是一些使用匿名函数的例子:
1,使用 lambda 函数计算两数之和:

add = lambda x, y: x + y
print(add(3, 4))  # 输出 7

2,使用 lambda 函数计算平方:

square = lambda x: x ** 2
print(square(3))  # 输出 9

3,在 Python 3.x 中,可以在列表解析中使用 lambda 函数:

numbers = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x ** 2, numbers))
print(squares)  # 输出 [1, 4, 9, 16, 25]

(注意:函数作为参数传递的时候,传递的是函数体,也就是函数的执行逻辑


🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

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

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

相关文章

ETAS入门篇-1、ISOLAR-A软件介绍

目录 ISOLAR-A介绍 体系结构 特性 架构 Explorers和Views 编辑 Editors

ORM(对象关系映射)的概念,并说明在Python中如何使用

ORM(对象关系映射)的概念,并说明在Python中如何使用 ORM(对象关系映射)是一种编程技术,它实现了将关系型数据库中的数据映射到程序中的对象模型,使得开发者能够使用面向对象的方式来操作数据…

海格里斯HEGERLS智能托盘四向车系统为物流仓储自动化升级提供新答案

随着实体企业面临需求多样化、订单履行实时化、商业模式加速迭代等挑战,客户对物流仓储解决方案的需求也逐渐趋向于柔性化、智能化。作为近十年来发展起来的新型智能仓储设备,四向车系统正是弥补了先前托盘搬运领域柔性解决方案的空白。随着小车本体设计…

1051:分段函数

【题目描述】 编写程序&#xff0c;计算下列分段函数yf(x)的值。结果保留到小数点后三位。 y−x2.5;0≤x<5 y2−1.5(x−3)(x−3);5≤x<10 yx/2−1.5;10≤x<20 【输入】 一个浮点数N(0≤N<20)。 【输出】 输出 N 对应的分段函数值&#xff1a;f(N)。结果保留到…

仅需 5% 训练样本达到最优性能,清华大学研究团队发布条件去噪扩散模型 SPDiff,实现长程人流移动模拟

人流移动模拟 (Crowd Simulation) 是在特定情境中模拟大量人员移动的过程。这项技术主要应用于计算机游戏、城市规划、建筑设计以及交通组织等领域。例如&#xff0c;模拟人群在不同条件&#xff08;如人群密度、流量等&#xff09;下在建筑物内的移动&#xff0c;帮助决策者评…

sql server 如何创建触发器

要在 SQL Server 中新增触发器&#xff0c;您需要使用 CREATE TRIGGER 语句。以下是具体的步骤和示例&#xff1a; 确定触发器逻辑&#xff1a; 首先&#xff0c;确定触发器应该在表的何时触发&#xff0c;以及触发时应该执行哪些逻辑操作。这包括确定触发器是在数据插入、更新…

Enshrouded/雾锁王国服务器配置选择要求,CPU内存带宽

雾锁王国/Enshrouded服务器CPU内存配置如何选择&#xff1f;阿里云服务器网aliyunfuwuqi.com建议选择8核32G配置&#xff0c;支持4人玩家畅玩&#xff0c;自带10M公网带宽&#xff0c;1个月90元&#xff0c;3个月271元&#xff0c;幻兽帕鲁服务器申请页面 https://t.aliyun.com…

Linux命令-cupsdisable命令(停止指定的打印机)

说明 cupsdisable命令 用于停止指定的打印机。 语法 cupsdisable(选项)(参数)选项 -E&#xff1a;当连接到服务器时强制使用加密&#xff1b; -U&#xff1a;指定连接服务器时使用的用户名&#xff1b; -u&#xff1a;指定打印任务所属的用户&#xff1b; -c&#xff1a;取…

勾八头歌之数据科学导论—数据预处理

第1关&#xff1a;引言-根深之树不怯风折&#xff0c;泉深之水不会涸竭 第2关&#xff1a;数据清理-查漏补缺 import numpy as np import pandas as pd import matplotlib.pyplot as pltdef student():# Load the CSV file and replace #NAME? with NaNtrain pd.read_csv(Tas…

精通 Python 装饰器:代码复用与功能增强技巧

精通 Python 装饰器&#xff1a;代码复用与功能增强技巧 引言装饰器基础装饰器的定义基本装饰器的实现方法理解 符号的用法简单装饰器示例代码 使用装饰器增强函数功能日志记录性能测试事务处理小结 装饰器进阶应用管理用户认证缓存机制的实现参数化装饰器的创建和应用多个装饰…

智慧公厕的意义:高效智能的公共厕所运营、服务、协作管理

现代城市的发展离不开智慧技术的引领&#xff0c;而智慧公厕作为城市基础设施的重要组成部分&#xff0c;正在逐渐展现其巨大的意义和价值。通过采用智能管理系统&#xff0c;智慧公厕实现了更高效的管理、更贴心的服务和更协同的业务流程。本文以智慧公厕源头实力厂家广州中期…

【猫头虎科技角】深入Drools:规则引擎的艺术与实践

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

UI学习 一 可访问性基础

教程&#xff1a;Accessibility – Material Design 3 需要科学上网&#xff0c;否则图片显示不出来。设计教程没有图片说明&#xff0c;不容易理解。 优化UI方向 清晰可见的元素足够的对比度和尺寸重要性的明确等级一眼就能辨别的关键信息 传达某一事物的相对重要性 将重…

数据库乐观锁

目录 数据库中实现乐观锁的示例&#xff1a;实现乐观锁时&#xff0c;常见的错误主要包括以下几个方面&#xff1a; 乐观锁&#xff08;Optimistic Locking&#xff09;是一种在数据库系统中用于解决并发问题的技术。它假设多个事务在并发执行时不会彼此冲突&#xff0c;只有在…

【猫头虎科技解码】探秘Drools语法:规则引擎在实战中的应用️

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

19、deque赋值操作

#include <iostream> using namespace std; #include <deque>void printdeque (const deque<int>& d) {for (deque<int>::const_iterator it d.begin(); it ! d.end(); it ){//*it 100 容器中的数据不可修改cout << *it << " &…

html5cssjs代码 006 文章排版《桃花源记》

html5&css&js代码 006 文章排版《桃花源记》 一、代码二、解释页面整体结构&#xff1a;头部信息&#xff1a;CSS样式&#xff1a;文章内容&#xff1a; 这段代码定义了一个网页&#xff0c;用于展示文章《桃花源记》的内容。网页使用了CSS样式来定义各个部分的显示效果…

在linux上部署yolov5和安装miniconda3

第一步&#xff1a;安装miniconda3 官网&#xff1a;Miniconda — Anaconda documentation 这四个命令快速而安静地安装最新的64位版本的安装程序&#xff0c;然后自行清理。要为Linux安装Miniconda的不同版本或体系结构&#xff0c;请在wget命令中更改.sh安装程序的名称。 …

AI怎么抠图?分享3种简单抠图小技巧

AI怎么抠图&#xff1f;AI抠图是一种利用人工智能技术从图像中精确提取出目标物体的过程。这种技术不仅提升了抠图效率&#xff0c;更保证了抠图的准确性&#xff0c;让我们能够更快速、更轻松地完成复杂的抠图任务。同时&#xff0c;随着技术的不断进步&#xff0c;AI抠图的应…

图数据库基准测试 LDBC SNB 系列讲解:Schema 和数据生成的机制

LDBC&#xff08;Linked Data Benchmark Council&#xff09;Social Network Benchmark&#xff0c;简称 LDBC SNB&#xff0c;是一种针对社交网络场景的评估图数据库性能的基准测试。 LDBC 简介 除了 Social Network Benchmark&#xff0c;LDBC 旗下目前还有其他几种基准测试…