1分钟掌握 Python 函数参数

任何编程语言函数都是非常重要的一部分,而在进行函数调用时,了解函数的参数传递方式是非常有必要的。Python中支持哪些传参方式呢?

Python中的传参方式是比较灵活的,主要包括以下六种:

  • 按照位置传参
  • 按照关键字传参
  • 默认参数
  • 元组传参
  • 字典传参
  • 综合传参

按照位置传参

顾名思义,实参与形参数目一致,并且是按照位置一一对应的。

def func(a, b):
    return a+b*2

当调用函数func(1,2)时,则按照a=1,b=2的方式形参与实参对应,返回结果为5。

按照关键字传参

这种方式在调用函数时既传实参,也传形参。因而,不需要根据位置对应了,位置可以颠倒:

def func(a, b):
    return a+b*2

当调用函数func(b=1,a=2)时,则按照b=1,a=2的方式形参与实参对应,匹配的方式是关键字而非位置,返回结果为4。

默认参数

默认参数必须放在前两类参数之后,在调用函数的时候可以传参,也可以不传。不传则采用默认的参数值。

def func(a, b, c = 3):
    return a+b*2+c

其中,c为默认参数。当通过func(1,2)调用函数时,c的取值为默认值3,函数的执行结果为8;当通过func(1,2,5)调用函数时,c的取值为实参值5,函数的执行结果为10。

元组传参

传入的参数以元组的形式呈现,长度不限,可以通过元组的访问方式依次访问各个入参:

def func(*args):
    for eacharg in args:
        print ('tuple arg:', eacharg)

调用方式如下:func(‘I’, ‘Love’, ‘PythonSomething’)

调用结果为:

tuple arg: I
tuple arg: Love
tuple arg: PythonSomething

字典传参

传入的参数以字典的形式呈现,长度不限,可以通过字典的访问方式依次访问各个入参:

def func(**kwargs):
    for eachkwarg in kwargs.keys():
        print('Dict Arg', eachkwarg, ':', kwargs[eachkwarg])

调用方式如下:

func(English_name = ‘PythonSomething’, Chinese_name= ‘Python那些事’)

调用结果为:

Dict Arg English_name : PythonSomething
Dict Arg Chinese_name : Python那些事

综合传参

是以上几种传参方式的综合。实际上,大家从上面的例子也可以发现,元组传参和字典传参已经能够满足大部分传参场景。所以,通常所的综合传参指的是这两种的组合,大家在源码中也经常会发现它们的身影:

def func(*args,**kwargs):
    for eacharg in args:
        print('tuple arg:', eacharg)

    for eachkwarg in kwargs.keys():
        print('Dict Arg', eachkwarg, ':', kwargs[eachkwarg])

调用示例为:

func(‘I’, ‘Love’, ‘PythonSomething’, English_name = ‘PythonSomething’, Chinese_name= ‘Python那些事’)

调用结果为:

tuple arg: I
tuple arg: Love
tuple arg: PythonSomething
Dict Arg Chinese_name : Python那些事
Dict Arg English_name : PythonSomething

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【算法基础实验】图论-构建无向图

构建无向图 前提 JAVA实验环境 理论 无向图的数据结构为邻接表数组,每个数组中保存一个Bag抽象数据类型(Bag类型需要专门讲解) 实验数据 我们的实验数据是13个节点和13条边组成的无向图,由一个txt文件来保存,本…

网贷大数据黑名单要多久才能变正常?

网贷大数据黑名单是指个人在网贷平台申请贷款时,因为信用记录较差而被列入黑名单,无法获得贷款或者贷款额度受到限制的情况。网贷大数据黑名单的具体时间因个人信用状况、所属平台政策以及银行审核标准不同而异,一般来说,需要一定…

森林消防泵柱塞泵工作原理深度解析——恒峰智慧科技

森林是地球上重要的生态系统,而森林火灾则是这一生态系统面临的主要威胁之一。为了有效应对森林火灾,森林消防泵成为了不可或缺的灭火工具。其中,柱塞泵作为森林消防泵的核心部件,其工作原理的理解对于提高森林消防效率具有重要意…

Java面试八股文-2024

面试指南 TMD,一个后端为什么要了解那么多的知识,真是服了。啥啥都得了解 MySQL MySQL索引可能在以下几种情况下失效: 不遵循最左匹配原则:在联合索引中,如果没有使用索引的最左前缀,即查询条件中没有包含…

Javascript 插值搜索与二分搜索

插值搜索和二分搜索都是在有序数组中查找目标元素的算法。它们之间的核心区别在于确定中间元素的方式。 1、二分搜索(Binary Search):二分搜索是一种通过将目标值与数组中间元素进行比较,然后根据比较结果缩小搜索范围的算…

ubuntu16安装docker及docker-compose

ubuntu16安装docker及docker-compose 一、环境前期准备 检查系统版本 系统版本最好在16及以上,可以确保系统的兼容性 lsb_release -a查看内核版本及系统架构 建议用 x86_64的系统架构,安装是比较顺利的 uname -a32的系统不支持docker,安…

Adipogen--Progranulin (rat) ELISA Kit

Progranulin (PGRN)是一种广泛表达的多能生长因子,通过激活控制细胞周期进展和细胞运动的信号级联反应,在发育、创伤修复和炎症等过程中发挥作用。它在中枢神经系统中的功能值得关注,因为在额颞退行性变(FTLD)病例中发现了PGRN基因突变。此外…

2024年618有哪些数码家电值得入手?全网最省钱攻略指南

作为全年唯一设在夏季的大型电商狂欢节,618一直是很多人购置数码类、家电类的最好时间节点之一。但是问题来了,现在的数码家电行业“鱼龙混杂”,不仅越来越多新品牌涌入市场,而且各个大品牌为了抢占市场,旗下产品的品类…

ArcGIS专题图制作—3D海底地形

这一期的制图教程将带我们走入马里亚纳海沟,让我们一起绘制这张美妙的地图吧!视频也上传到了B站,小伙伴可以去支持一下。 【制图教程】ArcGIS Pro绘制3D海底地形图 B站视频链接:【制图教程】ArcGIS Pro绘制3D海底地形图_哔哩哔哩…

7-31 字符串循环左移

题目链接:7-31 字符串循环左移 一. 题目 1. 题目 2. 输入输出样例 3. 限制 二、代码(python) 1. 代码实现 str1 input().split(\n)[0] num int(input()) len len(str1) if num > len:num num % len # 减少移动次数 print(str1[num:] str1[:num])2. 提交…

Spring Boot携手OAuth2.0,轻松实现微信扫码登录!

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目:CSDN主页YAML墨韵 学如逆水行舟&#xff0c…

21.基础乐理-等音调扩展篇、为何一共十五个大调

首先 等音调 的概念是基于 等音 的概念,比如下图中的音名:因为用的按键相同,音名不同,所以被称为等音调 然后音名一共有35个,如下图:所以在理论上它会有35个大调,但是人总是倾向于选择简单、简洁…

关于pdf.js中文本坐标尺寸的使用

一个电子教材项目中有这样一个需求: 用户向网站上传一个PDF书籍后,网站可以对PDF书籍进行解析,并支持用户对PDF书籍的每一页做一些操作,比如:为英语课本的单词和句子添加音频热区。因为热区数量很多,所以&a…

C# 图像处理 添加水印

方法1,使用自带的画刷进行绘制水印 示例代码 public partial class Form1 : Form{public Form1(){InitializeComponent();}string photoPathstring.Empty;Bitmap image null;private void button1_Click(object sender, EventArgs e) //选择照片{OpenFileDialog d…

LDA主题模型

在文本挖掘领域,大量的数据都是非结构化的,很难从信息中直接获取相关和期望的信息,一种文本挖掘的方法:主题模型(Topic Model)能够识别在文档里的主题,并且挖掘语料里隐藏信息,并且在…

Windows 下载、安装和使用 Postman 的详细教程!

Postman 是一个功能强大的API测试工具,它可以帮助程序员更轻松地测试和调试 API。在本文中,我们将讨论如何在 Windows 上安装和使用 Postman。 安装 Postman 首先,让我们从 Postman 的官方网站下载并安装:https://www.postman.c…

YOLOV5 TensorRT部署 BatchedNMS(engine模型推理)(下)

主要是在王新宇代码的基础上改进,引入对BatchedNMS的解码 文章目录 1. 修改yolov5.cpp2.修改yololayer.h1. 修改yolov5.cpp 首先增加全局变量,名字根据转onnx时修改的节点名字来,查看onnx文件可以看到,顺序不要弄错。 const char *INPUT_NAME = “images”; const char …

C语言——贪吃蛇游戏的实现

目录 一. 贪吃蛇的介绍 二. Win32 API 1. 控制台程序 2. COORD 控制台屏幕上的坐标 3. GetStdHandle 4. GetConsoleCursorInfo CONSOLE_CURSOR_INFO 5. SetConsoleCursorInfo 6. SetConsoleCursorPosition 封装的SetPos函数 7. GetAsyncKeyState 宏定义KEY_PRESS 三…

Jackson 2.x 系列【31】Spring Boot 集成之字典回写

有道无术,术尚可求,有术无道,止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址:https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 场景描述2. 案例演示2.1 修改枚举2.2 定义注解…

【Go语言】接口类型(一)接口类型与接口的值

本文是介绍golang接口类型的第一篇,主要介绍接口类型与接口类型的值的相关概念。 1. 静态类型、动态类型、动态值 所谓的静态类型(即 static type),就是变量声明的时候的类型。 var age int // int 是静态类型 var name strin…