python--函数的基本用法

news2024/11/20 13:18:03

python--函数的基本用法

  • 定义函数
    • 无参无返回值
    • 有参无返回值
    • 无参有返回值
    • 有参有返回值
  • 空函数
  • 多个返回值
  • 函数的参数
    • 必传参数(不传会报错)
    • 关键字参数
    • 不定长参数
      • *args
      • **kwargs
      • 区别
  • 拆包(了解)
    • *用法
    • **用法

定义函数

无参无返回值

def foo():
    语句

有参无返回值

def foo(x, y):
    z = x + y

无参有返回值

def foo():
    x = 1
    return x + 1

有参有返回值

def foo(x, y):
    return x + y

空函数

def emptyfunc():
    pass

多个返回值

return多个值,其实是返回一个元组

def foo():
    x, y, z=1, 2, 3
    return x,y,z

# 返回一个元组
tup = foo()
# 元组拆包
x1, y1, z1 = foo()

函数的参数

必传参数(不传会报错)

a、必须要传对应个数的参数
b、参数传递必须以正确的顺序传入,参数的传递位置要与实际期望传值一一对应

关键字参数

定义:def foo(**kwargs):pass,其中kwargs是一个字典
调用1:foo(k1=v1, k2=v2) 参数传入键值对
调用2:foo(**d) 参数传入字典d

# 关键字参数
def test_function(name,age):
    print('我是一个测试函数')
    print(name,age)
test_function(age='老王',name=20)

不定长参数

*args

# *args
#这意味着函数可以接受任意数量的参数,这些参数将作为一个元组(tuple)传递给函数。
def test_function(*args):
    print(args)
test_function('name','age')

**kwargs

# **kwargs
#接收关键字参数,并将它们作为一个字典传递给函数
def test_function(**kwargs):
    print(kwargs)
test_function(name='name',age='age')

区别

def example_function(*args, **kwargs):
    print("Positional arguments (*args):", args)
    print("Keyword arguments (**kwargs):", kwargs)

# 调用函数
example_function('apple', 'banana', 'cherry', color='red', size='large')

在这里插入图片描述

在这个例子中,‘apple’, ‘banana’, 'cherry’是位置参数,而color=‘red’, size='large’是关键字参数。*args将位置参数打包成一个元组,而**kwargs将关键字参数打包成一个字典。

拆包(了解)

*用法

test01(*list_1) # 相当于 test01(1,2,3)

# * 解压用法
def test01(*args):
    print(args)
test01(1,2,3)
list_1=[1,2,3]
test01(*list_1)  # 相当于  test01(1,2,3)

**用法

test01(**dict_1) # 相当于 test01(key1=‘val1’,key2=‘val2’)

# **
def test01(**args):
    print(args)
test01(key1='val1',key2='val2')
dict_1={'key1':'val1','key2':'val2'}
test01(**dict_1) # 相当于  test01(key1='val1',key2='val2')

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

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

相关文章

网络安全框架和云安全参考架构介绍

目录 一、网络安全框架 1.1 概述 1.2 IATF框架 1.2.1 框架来源 1.2.2 框架结构图 1.2.3 框架内容 1.2.3.1 人(People) 1.2.3.2 技术(Technology) 1.2.3.3 操作(Operation) 1.3 NIST网络安全框架 …

任何图≌自己这一几何最最起码常识推翻直线公理和平面公理

黄小宁 与x∈R相异(等)的实数均可表为yxδ(增量δ可0也可≠0)。因各实数的绝对值都可是表示长度的数故各实数都可是一维空间“管道”g内点的坐标。于是x∈R变换为实数yxδ的几何意义可是:“管道”g内R轴上的质点x∈R(x…

由浅到深认识C语言(9):动态内存分配

该文章Github地址:https://github.com/AntonyCheng/c-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.csdn…

前端基础——HTML傻瓜式入门(2)

该文章Github地址:https://github.com/AntonyCheng/html-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.c…

夏天快到了,车辆改色膜备案流程是什么?

夏天快到了 越来越多的车主想给自己的爱车贴上变色膜。 但也有不少车主对车辆贴膜登记流程并不清楚。 本期电影一号小编就给大家科普一下。 一起来看看吧~ 您可以先更改车身颜色,然后再进行: 现在相关政策发生了变化,允许车主先改变车辆颜…

复杂微纳结构制造需求旺盛 微纳3D打印市场发展前景广阔

复杂微纳结构制造需求旺盛 微纳3D打印市场发展前景广阔 微纳3D打印是一种基于增材原理制造微纳结构的新型微纳加工技术。   3D打印又称为增材制造,是以数字模型为基础,将材料逐层堆积制造出实体物品的制造技术。我国3D打印市场发展动力强劲&#xff0c…

加速渲染:Blender与在线渲染农场的结合

​在数字艺术和三维设计的世界里,Blender软件因其强大的功能和灵活性而广受欢迎。然而,随着项目复杂性的增加,渲染时间也随之增长,成为艺术家和设计师面临的一大挑战。在线渲染农场的出现,为这一问题提供了革命性的解决…

Python Learn day05

Python Learn day05 本文主要讲解 继承、多态、定制类 继承和多态 什么是继承 当新类想要拥有现有类的功能结构,可以使用继承。继承的前提是新类 is a 现有类,即: 子类 is 父类 总是从某个类继承: class Myclass(object):pass…

从单一收入到自由职业:宝哥多元化收入探索之旅

你好,我是宝哥,一个热爱前端开发的自媒体人。 目前是: 前端社群达人 (管理10个前端交流群,连接数千开发者)微博前端大V (拥有20万粉丝,分享最新前端技术和资讯)前端公众号主编 (运营头部前端公众号,影响着数…

算法打卡day18|二叉树篇07|Leetcode 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

算法题 Leetcode 530.二叉搜索树的最小绝对差 题目链接:530.二叉搜索树的最小绝对差 大佬视频讲解:二叉搜索树的最小绝对差视频讲解 个人思路 因为是在二叉搜索树求绝对差,而二叉搜索树是有序的,那就把它想成在一个有序数组上求最值&…

P6技巧:导出XER设置老版本/新版本

前言 在一个大型的项目中,虽然业主方已要求承包商必须使用P6格式来提交计划,但实际情况是承包商会给到你多种不同版本的XER文件,使得得在Oracle Primavera P6 之间导入或导出。 如果收到的 XER 文件不适合你使用的 Primavera P6 版本&#x…

使用IDEA2023创建传统的JavaWeb项目并运行与调试

日期:2024-0312 作者:dusuanyun 文档环境说明: OS:Deepin 20.9(Linux) JDK: OpenJDK21 Tomcat:10.1.19 IDEA: 2023.3.4 (Ultimate Edition) 本文档默认已经安装JDK及环境变量的配置。 关键词…

广度优先算法(一篇文章讲透)

目录 引言 一、算法概述 二、算法步骤 1 初始化 2 循环处理 三、算法应用 1 图的最短路径问题 2 网络爬虫 3 社交网络分析 4 游戏路径搜索 事例 四、算法特点与性能 五、性能优化 1 剪枝策略: 2 使用高效的数据结构: 3 并行化处理&#…

VS2022实现简单控件的缩放

private float X;//当前窗体的宽度private float Y;//当前窗体的高度public Form1(){InitializeComponent();}// 将控件的宽,高,左边距,顶边距和字体大小暂存到tag属性中private void setTag(Control cons){foreach (Control con in cons.Con…

【ARM】UBL本地服务器离线激活license

【更多软件使用问题请点击亿道电子官方网站查询】 1、 文档目标 UBL本地服务器离线激活license。 2、 问题场景 解决有用户外出时激活 license。 3、软硬件环境 1)、软件版本:MDK5.39 2)、电脑环境:Ubuntu 20.04 LTS 3&…

回答自己一年前的一个问题,python如何动态拼接sql

首先谈谈应用场景吧,前提是针对查询接口做接口自动化,接口校验的脚本中,一般以响应报文作为预期值,通过sql查出的数据库值作为实际值,二者对比通过则认为接口输出正确。而sql从何而来呢,对于查询接口一般是…

【JavaEE初阶系列】——多线程 之 创建线程

目录 🎈认识Thread类 🎈Sleep 🎈创建线程 🚩继承Thread,重写run方法 🚩实现Runnable接口,重写run方法 🚩使用匿名内部类创建 Thread 子类对象 🚩使用匿名内部类&…

拌合楼内部管理系统开发(一)立个flag,开始做准备

前言:项目背景情况介绍 公司有意开发一套适合拌合楼的内部管理系统给到客户使用,接触过一家拌合楼行业内号称标杆的企业,去过参观学习的都觉得他们软件好用,但是从软件开发角度看,就是crud钉钉机器人无人值守。虽然公司…

xilinx-pg016 AI翻译

文档版本: Video Timing Controller v6.2 PG016 February 26, 2021 IP Facts Introduction Xilinx LogiCORE™ IP Video Timing Controller core是一种通用的视频时序生成器和检测器。该核心通过全面详尽的寄存器集高度可编程,允许控制各种时序生成…

算法---滑动窗口练习-6(找到字符串中所有字母异位词)

找到字符串中所有字母异位词 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址:找到字符串中所有字母异位词 2. 讲解算法原理 算法的基本思想是使用滑动窗口来遍历字符串s,并利用两个哈希表(hash1和hash2)来统计窗口…