Python(九十三)函数的参数总结

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。
☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无论你是学生、职场人士还是对编程感兴趣的爱好者,都能从中受益。跟着我的学习笔记一起学习python吧。
🌙专栏目标:本专栏的目标是帮助我自己记忆、方便回顾所学知识以及帮助其他想学习python的小伙伴掌握Python编程语言的基本概念和技巧,并逐步提高我们的编程能力。通过这个专栏,我们将学会如何编写Python代码,理解各种数据类型、控制结构和函数,掌握常用的Python模块和库,以及应用Python解决实际问题。

⭐️ 专栏主要内容: 主要学习python的开发环境搭建;Python的基础知识,包括变量、数据类型、条件语句和循环等;python的数据结构和算法;python的函数和模块;python的文件处理等。
🌴 专栏说明 :如果文章知识点有错误的地方,欢迎大家随时在文章下面评论,我会第一时间改正。让我们一起学习,一起进步。
💑专栏主页:从零开始的Python入门之路

在这里插入图片描述

在Python中,函数参数的灵活性是编程中的一个关键方面。不同类型的参数允许我们以多种方式定义和调用函数。在这篇博客中,我将详细介绍函数参数的各种形式,包括位置实参、关键字实参、默认值形参、关键字形参、个数可变的位置形参和个数可变的关键字形参。

文章目录

    • 位置实参
    • 关键字实参
    • 默认值形参
    • 关键字形参
    • 个数可变的位置形参
    • 个数可变的关键字形参
    • 总结

位置实参

位置实参是最常见的参数传递方式,将序列中的每个元素都转换为位置实参,使用*操作符。

def greet(name, age):"""函数用于打印问候语,接受两个位置实参。参数:- name: 字符串,表示要问候的人的名字。- age: 整数,表示要问候的人的年龄。"""print(f"Hello, {name}! You are {age} years old.")# 调用函数,传递位置实参
greet(*("Alice", 25))

运行结果:

Hello, Alice! You are 25 years old.

解释:使用*操作符将元组中的元素转换为位置实参,传递给greet函数。

关键字实参

关键字实参是通过将字典中的每个键值对转换为关键字实参,使用**操作符。

def greet(name, age):"""函数用于打印问候语,接受两个关键字实参。参数:- name: 字符串,表示要问候的人的名字。- age: 整数,表示要问候的人的年龄。"""print(f"Hello, {name}! You are {age} years old.")# 调用函数,传递关键字实参
greet(**{"name": "Bob", "age": 30})

运行结果:

Hello, Bob! You are 30 years old.

解释:使用**操作符将字典中的键值对转换为关键字实参,传递给greet函数。

默认值形参

默认值形参是在函数定义时为参数指定默认值,如果调用时未提供该参数的值,则使用默认值。

def greet(name, greeting="Hello"):"""函数用于打印问候语,默认问候语为"Hello"。参数:- name: 字符串,表示要问候的人的名字。- greeting: 字符串,表示问候语,默认值为"Hello"。"""print(f"{greeting}, {name}!")# 调用函数,未提供默认值形参的值
greet("Charlie")

运行结果:

Hello, Charlie!

解释:greeting参数有一个默认值"Hello",如果在调用函数时未提供该参数的值,则使用默认值。

关键字形参

关键字形参是在函数定义时使用*将之后的参数强制为关键字形式,调用时必须使用关键字方式传递。

def greet(name, *, greeting="Hello"):"""函数用于打印问候语,强制使用关键字形参。参数:- name: 字符串,表示要问候的人的名字。- greeting: 字符串,表示问候语,默认值为"Hello",强制使用关键字形参。"""print(f"{greeting}, {name}!")# 调用函数,使用关键字形参
greet("David", greeting="Hi there")

运行结果:

Hi there, David!

解释:使用*将之后的参数强制为关键字形式,调用时必须使用关键字方式传递。

个数可变的位置形参

个数可变的位置形参允许函数接受任意数量的位置参数,使用*操作符。

def variable_args(*args):"""函数用于演示个数可变的位置参数。参数:- args: 个数可变的位置参数,封装成元组。"""print("Received arguments:", args)# 调用函数,传递不同数量的位置参数
variable_args(1, 2, 3)
variable_args('a', 'b', 'c', 'd')

运行结果:

Received arguments: (1, 2, 3)
Received arguments: ('a', 'b', 'c', 'd')

解释:*args允许函数接受任意数量的位置参数,并将它们封装成一个元组。

个数可变的关键字形参

个数可变的关键字形参允许函数接受任意数量的关键字参数,使用**操作符。

def variable_kwargs(**kwargs):"""函数用于演示个数可变的关键字形参。参数:- kwargs: 个数可变的关键字形参,封装成字典。"""print("Received keyword arguments:", kwargs)# 调用函数,传递不同数量的关键字参数
variable_kwargs(name='Alice', age=25)
variable_kwargs(city='Wonderland', profession='Adventurer')

运行结果:

Received keyword arguments: {'name': 'Alice', 'age': 25}
Received keyword arguments: {'city': 'Wonderland', 'profession': 'Adventurer'}

解释:**kwargs允许函数接受任意数量的关键字参数,并将它们封装成一个字典。

总结

在Python函数中,参数的灵活使用对于构建强大而灵活的函数至关重要。位置实参、关键字实参、默认值形参、关键字形参、个数可变的位置形参和个数可变的关键字形参都是Python函数中常用的参数形式,它们为函数提供了多样性和适应性,使得函数的定义和调用更为灵活和自由。

参考链接:

  • Python 官方文档 - 函数定义
  • Real Python - Python Args and Kwargs: Demystified

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

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

相关文章

如何在Win11系统中使用ubuntu(WSL)终端编译 Rust 程序

第一步:安装 WSL 参考微软提供的官方指南 在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入 wsl --install 命令,然后重启计算机。 第二步:安装 ubuntu22.04 …

网站常见的反爬手段及反反爬思路

摘要:介绍常见的反爬手段和反反爬思路,内容详细具体,明晰解释每一步,非常适合小白和初学者学习!!! 目录 一、明确几个概念 二、常见的反爬手段及反反爬思路 1、检测user-agent 2、ip 访问频率的限制 …

JavaScript和Java:两个不同世界的编程语言

在计算机编程的世界里,有两个看似相似但实际上截然不同的语言:JavaScript和Java。虽然它们在名字上有相似之处,但它们的历史、设计目标和用途却迥然不同。 Java的诞生 Java最初于1991年由Sun Microsystems(现在是Oracle的一部分…

Stochastic Depth 原理与代码解析

paper:Deep Networks with Stochastic Depth official implementation:https://github.com/yueatsprograms/Stochastic_Depth third-party implementation:https://github.com/open-mmlab/mmcv/blob/main/mmcv/cnn/bricks/drop.py 存在的问…

【day01】每天三道 java后端面试题:JDK、JRE和JVM | 字节码 | ACID

文章目录 1. JDK, JRE, JVM分别是什么?有什么区别?2. 什么是字节码?采用字节码的最大好处是什么?3. 什么是数据库事务?讲一下事务的ACID特性。 1. JDK, JRE, JVM分别是什么?有什么区别? 答题思路…

深度解析 Transformer 模型:原理、应用与实践指南【收藏版】

深度解析 Transformer 模型:原理、应用与实践指南 1. Transformer 模型的背景与引言2. Transformer 模型的原理解析2.1 自注意力机制(Self-Attention)自注意力机制原理 2.2 多头注意力机制(Multi-Head Attention)多头注…

探索单片机应用领域:从智能家居到工业自动化

单片机作为一种微型计算机芯片,在智能家居和工业自动化领域有着广泛的应用。以下将从智能家居和工业自动化两个方面分点论述单片机的应用。 智能家居领域: 1. 智能灯光控制: 单片机可以用于控制智能灯光系统,实现灯光的远程控制…

找出盗窃者

找出盗窃者 题目描述: 某地发生了⼀件盗窃案,警察通过排查确定盗窃者必为4个嫌疑⼈的⼀个。 以下为4个嫌疑人的供词: A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人…

java+vue_springboot企业设备安全信息系统14jbc

企业防爆安全信息系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的java进行编写,使用了vue框架。该系统从三个对象:由管理员、人员和企业来对系统进行设计构建。主要功能包括:个人信息修改,对人员管理&am…

C++ 浮点数二分 数的三次方根

给定一个浮点数 n ,求它的三次方根。 输入格式 共一行,包含一个浮点数 n 。 输出格式 共一行,包含一个浮点数,表示问题的解。 注意,结果保留 6 位小数。 数据范围 −10000≤n≤10000 输入样例: 1000.00…

树与二叉树

树与二叉树 文章目录 树与二叉树一、树的概念及结构1.、树的概念2、树的相关概念1.3 树的表示 二、二叉树1.概念2、特殊的二叉树3、二叉树的性质4、二叉树的存储结构 三、二叉树的顺序结构及实现1、二叉树的顺序结构2、堆的概念及结构3、堆的实现 四、二叉树链式结构的实现1、遍…

Jtti:PHP怎么实现Memcached主从复制自动切换

在 PHP 应用中实现 Memcached 主从复制自动切换通常需要结合一些额外的工具和技术来实现。下面是一种可能的方案: 1. 使用 Memcached 主从复制: 首先,您需要设置 Memcached 主从复制,确保主服务器和从服务器之间同步数据。这可以通…

python统计分析——一元线性回归分析

参考资料:用python动手学统计学 1、导入库 # 导入库 # 用于数值计算的库 import numpy as np import pandas as pd import scipy as sp from scipy import stats # 用于绘图的库 import matplotlib.pyplot as plt import seaborn as sns sns.set() # 用于估计统计…

dayjs实现前端消息通知日期格式显示——仿微信消息时间

背景:在做一个消息通知类的需求,在PC端实现消息接收界面,日期显示参考微信聊天界面消息时间提示。具体规则如下: 当天:显示时分 昨天:显示‘昨天时分’ 本周:显示“周几时分” 本周之前&#xf…

LeetCode 36天 | 435.无重叠区域 763.划分字母区间 56.合并区间

435. 无重叠区间 左边排序&#xff0c;右边裁剪为当前最小的 class Solution { public:// 按照左边界排序static bool cmp(vector<int> a, vector<int> b) {return a[0] < b[0];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {…

JAVA常见IO模型 BIO、NIO、AIO总结

BIO Blocking IO 同步阻塞型IO。当系统进行IO读写的时候&#xff0c;会阻塞&#xff0c;直到IO读写完毕。比如调用系统Read后&#xff0c;需要将内核空间的数据读取到用户空间。需要等待内核空间 数据准备&#xff0c;数据就绪&#xff0c;拷贝数据&#xff0c;线程一直处于阻…

CSS之重绘与回流

重绘&#xff08;Repaint&#xff09; 当页面中元素样式的改变并不影响它在文档流中的位置时&#xff08;例如改变颜色、阴影等&#xff09;&#xff0c;浏览器会进行重绘&#xff0c;即重新绘制元素的外观。 回流&#xff08;Reflow&#xff09; 当元素的大小、位置、隐藏等…

IO进程:fread\fwrite图像拷贝,read\write文件拷贝,时间函数

1.使用fread、fwrite实现图片拷贝 程序代码&#xff1a; 1 #include<myhead.h>2 int main(int argc, const char *argv[])3 {4 //判断传入文件个数5 if(argc!3)6 {7 printf("input file error\n");8 printf("usage:./a.out …

【QCA6174】SDX12+QCA6174驱动屏蔽120/124/128信道修改方案

SDX12基线版本 SDX12.LE.1.0-00215-NBOOT.NEFS.PROD-1.39743.1 问题描述 对于欧洲国家来说,默认支持DFS信道,但是有三个信道比较特殊,是天气雷达信道,如下图所示120、124、128,天气雷达信道有个特点就是在信号可以发射之前需要检测静默15min,如果信道自动选择到了天气雷达…

情感分析入门:使用Python和TextBlob进行情感分析

简介 情感分析是自然语言处理领域的一个重要任务&#xff0c;它涉及分析文本中的情感和情绪&#xff0c;如积极、消极、中性等。TextBlob是一个简单易用的自然语言处理工具库&#xff0c;其中包含了情感分析功能。本文将介绍如何使用Python编程语言和TextBlob库进行情感分析&a…