当前位置: 首页 > article >正文

第9章 函数-9.5 函数参数的类型

1.位置参数位置参数指的是在函数传递时必须按照正确的顺序将实参传到函数之中换句话说调用函数时传入实参的数量和位置都必须和创建函数时的形参保持一致。示例代码如下# 资源包\Code\chapter9\9.4\0907.py def myFunc(name, teach): return (name, teach) tp myFunc(来自远方的老作者, Python) print(tp)2.关键字参数关键字参数指的是在函数传递时使用形参的参数名来确定实参的参数名通过此种方式指定函数实参时不再需要与形参的位置完全一致只要将参数名写正确以及确保数量与形参一致即可。示例代码如下# 资源包\Code\chapter9\9.4\0908.py def myFunc(name, teach): return (name, teach) tp myFunc(teachPython, name来自远方的老作者) print(tp)3.默认参数默认参数指的是在创建函数时直接给形参指定一个默认值。这样的话即使调用函数时没有给拥有默认值的形参传递值该形参也可以直接使用创建函数时设置的默认值。使用默认参数时的示例代码如下# 资源包\Code\chapter9\9.4\0910.py def myFunc(name, teachPython): return (name, teach) tp myFunc(name来自远方的老作者) print(tp)修改默认参数时可以通过使用两种方式进行修改即位置参数和关键字参数示例代码如下def myFunc1(teachPython): return (teach) # 以位置参数的形式 tp1 myFunc1(Java) print(tp1) def myFunc2(teachPython): return (teach) # 以关键字参数的形式 tp2 myFunc2(teachJava) print(tp2)4.可变参数可变参数‌是指函数可以接受任意数量的实际参数其解决了在实际使用函数时可能遇到的“不知道函数需要接收多少个实参”的情况。可变参数可分为包裹位置参数和包裹关键字参数。1包裹位置参数包裹位置参数需要在形参之前添加*其允许在创建函数时向函数传递任意数量的位置参数且这些参数在函数内部会被存储为一个元组。示例代码如下# 资源包\Code\chapter9\9.4\0912.py def myFunc(*info): return info tp myFunc(来自远方的老作者, Python, 35) # tp的数据类型为元组 print(tp)2包裹关键字参数包裹关键字参数需要在形参之前添加**其允许在创建函数时向函数传递任意数量的关键字参数且这些参数在函数内部会被存储为一个字典。示例代码如下# 资源包\Code\chapter9\9.4\0913.py def myFunc(**info): return info tp myFunc(name来自远方的老作者, teachPython, age35) # tp的数据类型为字典 print(tp)5.解包裹参数解包裹参数用于将实参中的元素拆解开来并将这些元素一一对应的传递给函数中的形参。注意实参中的元素个数必须与形参的个数一致否则会产生语法错误。解包裹参数可分为解包裹位置参数和解包裹关键字参数。1解包裹位置参数解包裹位置参数需要在实参之前添加*其会将实参中的元素按照位置参数的相关格式进行拆解并一一对应的传递给函数中的形参。注意实参的数据类型可以为字符串、列表、元组和集合。示例代码如下# 资源包\Code\chapter9\9.4\0915.py def myFunc(name, teach, age): return (name, teach, age) lt [来自远方的老作者, Python, 35] tp myFunc(*lt) print(tp)2解包裹关键字参数解包裹关键字参数需要在实参之前添加**其会将实参中的元素按照关键字参数的相关格式进行拆解并一一对应的传递给函数中的形参。注意实参的数据类型必须为字典。示例代码如下# 资源包\Code\chapter9\9.4\0916.py def myFunc(name, teach, age): return (name, teach, age) dt {name: 来自远方的老作者, teach: Python, age: 35} tp myFunc(**dt) print(tp)6.混合参数1位置参数和关键字参数的混合使用位置参数必须在关键字参数之前示例代码如下# 资源包\Code\chapter9\9.4\0909.py def myFunc1(age, name, teach): return (age, name, teach) tp1 myFunc1(35, teachPython, name来自远方的老作者) print(tp1)2位置参数、关键字参数和默认参数的混合使用首先位置参数必须在关键字参数之前其次无论修改或是使用默认参数默认参数都必须在位置参数和关键字参数之后但在修改默认参数时其只能通过使用关键字参数的形式进行修改示例代码如下# 资源包\Code\chapter9\9.4\0911.py # 使用默认默认参数 def myFunc1(name, teach, age35): return (name, teach, age) tp1 myFunc1(来自远方的老作者, teachPython) print(tp1) #通过使用关键字参数的形式修改默认参数 def myFunc2(name, teach, age35): return (name, teach, age) tp2 myFunc2(来自远方的老作者, teachPython, age38) print(tp2)3位置参数、关键字参数、默认参数和包裹位置参数的混合使用首先包裹位置参数要放到位置参数之后关键字参数之前其次当需要使用默认参数的值时则默认参数要放在位置参数、关键字参数和包裹位置参数之后当需要通过使用位置参数的形式修改默认参数的值时则默认参数要放在包裹位置参数之前位置参数之后当需要通过使用关键字置参数的形式修改默认参数的值时则默认参数只需要放在包裹位置参数之后即可不需要考虑其与关键字参数的位置。示例代码如下# 资源包\Code\chapter9\9.4\0917.py # 使用默认参数 def myfunc(name, *info, teach, height186): return (name, teach, info, height) tp myfunc(来自远方的老作者, 35, Python, teachJava) print(tp) # 通过使用位置参数的形式修改默认参数 def myfunc(name, height186, *info, teach): return (name, teach, info, height) tp myfunc(来自远方的老作者, 188, 35, Python, teachJava) print(tp) # 通过使用关键字参数的形式修改默认参数 def myfunc(name, *info, teach, height186): return (name, teach, info, height) tp myfunc(来自远方的老作者, 35, Python, teachJava, height188) print(tp)4位置参数、关键字参数、默认参数和包裹关键字参数的混合使用首先包裹关键字参数要放到末尾其次无论修改或是使用默认参数默认参数要放在位置参数和关键字参数之后包裹关键字参数之前但在修改默认参数时其只能通过使用关键字参数的形式进行修改。示例代码如下# 资源包\Code\chapter9\9.4\0914.py # 使用默认参数 def myFunc(name, teach, age35, **info): return (name, teach, age, info) tp myFunc(来自远方的老作者, teachPython, other_name老作者, other_teachData Analysis) print(tp) # 通过使用关键字参数的形式修改默认参数 def myFunc(name, teach, age35, **info): return (name, teach, age, info) tp myFunc(来自远方的老作者, teachPython, age38, other_name老作者, other_teachData Analysis) print(tp)5位置参数、关键字参数、默认参数、包裹位置参数和包裹关键字参数的混合使用首先包裹位置参数必须在包裹关键字参数的前面其次当需要使用默认参数的值时则默认参数要放在位置参数、关键字参数和包裹位置参数之后包裹关键字参数之前当需要通过使用位置参数的形式修改默认参数的值时则默认参数要放在包裹位置参数之前位置参数之后当需要通过使用关键字置参数的形式修改默认参数的值时则默认参数只需要放在包裹位置参数之后包裹关键字参数之前即可不需要考虑其与关键字参数的位置。示例代码如下# 资源包\Code\chapter9\9.4\0919.py # 使用默认参数 def myfunc(name, *info, teach, height186, **other_info): return (name, teach, info, other_info, height) tp myfunc(来自远方的老作者, 35, Python, teachPython, other_name老作者, other_teachData Analysis) print(tp) # 通过使用位置参数的形式修改默认参数 def myfunc(name, height186, *info, teach, **other_info): return (name, teach, info, other_info, height) tp myfunc(来自远方的老作者, 188, 35, Python, teachPython, other_name老作者, other_teachData Analysis) print(tp) # 通过使用关键字参数的形式修改默认参数 def myfunc(name, *info, height186, teach, **other_info): return (name, teach, info, other_info, height) tp myfunc(来自远方的老作者, 35, Python, height188, teachPython, other_name老作者, other_teachData Analysis) print(tp)

相关文章:

第9章 函数-9.5 函数参数的类型

1.位置参数位置参数指的是在函数传递时必须按照正确的顺序将实参传到函数之中,换句话说,调用函数时传入实参的数量和位置都必须和创建函数时的形参保持一致。示例代码如下:# 资源包\Code\chapter9\9.4\0907.pydef myFunc(name, teach):return…...

FastAPI项目架构:从模块化设计到生产就绪的目录规划

1. 为什么需要模块化的FastAPI项目架构 第一次用FastAPI写项目时,我把所有代码都堆在main.py里。路由、数据库操作、业务逻辑全挤在一起,结果两周后连自己都看不懂代码了。这种经历让我深刻理解到:好的目录结构不是摆设,而是项目可…...

MiniCPM-o-4.5-nvidia-FlagOS参数详解:bfloat16精度选择依据与推理延迟权衡分析

MiniCPM-o-4.5-nvidia-FlagOS参数详解:bfloat16精度选择依据与推理延迟权衡分析 1. 引言 当你第一次部署一个像MiniCPM-o-4.5这样的大模型时,面对配置选项里那个“bfloat16”精度选项,是不是有点拿不准主意?选它吧,担…...

Python入门第一课:零基础认识Python + 环境搭建 + 基础语法精讲

Python入门第一课:零基础认识Python 环境搭建 基础语法精讲 文章目录Python入门第一课:零基础认识Python 环境搭建 基础语法精讲一、Python 是什么?为什么要学它?1.1 Python 简介1.2 Python 能做什么?1.3 Python 的…...

中小企业必看:Gemma 4 企业级私有化部署全流程(避坑指南)

中小企业必看:Gemma 4 企业级私有化部署全流程(避坑指南) 前言 对中小企业来说,AI大模型不用追求“参数越高越好”,核心是“低成本、易部署、能商用、保隐私”——而谷歌最新开源的Gemma 4,刚好踩中所有痛…...

如何免费打造你的个人游戏串流服务器:Sunshine终极指南 [特殊字符]

如何免费打造你的个人游戏串流服务器:Sunshine终极指南 🎮 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想要在任何设备上畅玩PC大作,却不想被…...

MATLAB代码:储能参与调峰调频联合优化模型 关键词:储能 调频 调峰 充放电优化 联合运行...

MATLAB代码:储能参与调峰调频联合优化模型 关键词:储能 调频 调峰 充放电优化 联合运行 仿真平台:MATLABCVX 平台 主要内容:代码主要做的是考虑储能同时参与调峰以及调频的联合调度模型,现有代码往往仅关注储能在调峰…...

千问3.5-9B人工智能导论:用模型讲解机器学习与深度学习核心概念

千问3.5-9B人工智能导论:用模型讲解机器学习与深度学习核心概念 1. 当AI成为你的知识导师 想象一下,你面前坐着一位既懂技术又擅长教学的AI导师。它不仅掌握最前沿的人工智能知识,还能用生活中的例子帮你理解复杂概念。这就是千问3.5-9B作为…...

5分钟搞定Docker+MySQL数据持久化:挂载本地目录与字符集配置全流程

DockerMySQL数据持久化实战:目录挂载与字符集配置终极指南 刚接触Docker的开发者经常会遇到这样的困扰:MySQL容器重启后数据全部丢失,或者存储的emoji表情变成了一堆问号。这些问题看似简单,却直接影响着开发效率和数据安全。本文…...

Qwen3-ASR-1.7B部署教程:OpenShift平台容器化部署与水平扩缩容配置

Qwen3-ASR-1.7B部署教程:OpenShift平台容器化部署与水平扩缩容配置 1. 项目概述 Qwen3-ASR-1.7B是基于阿里云通义千问语音识别模型开发的高精度本地语音转文字工具。相比之前的0.6B版本,这个1.7B模型在复杂长难句和中英文混合语音识别方面有显著提升&a…...

5个实战技巧彻底掌握OpenUserJS.org:解锁浏览器无限定制能力

5个实战技巧彻底掌握OpenUserJS.org:解锁浏览器无限定制能力 【免费下载链接】OpenUserJS.org The home of FOSS user scripts. 项目地址: https://gitcode.com/gh_mirrors/op/OpenUserJS.org OpenUserJS.org作为自由开源软件用户脚本的集中平台,…...

【技术干货】Hermes Agent 0.8 深度解析:开源自主 AI 代理的生产级进化

摘要 本文深度解析 Hermes Agent 0.8 版本的核心技术升级,涵盖异步任务通知、动态模型切换、工具调用优化等关键特性,并提供基于 Python 的完整实战代码示例,助力开发者快速构建生产级 AI Agent 应用。背景介绍 Hermes Agent 是由 Nous Resea…...

2026届毕业生推荐的AI辅助论文神器横评

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek DeepSeek作为大语言模型,在学术论文写作范畴有着一定辅助意义,研究者…...

Kandinsky-5.0-I2V-Lite-5s图像转视频实战:Python入门级调用与效果生成

Kandinsky-5.0-I2V-Lite-5s图像转视频实战:Python入门级调用与效果生成 1. 开篇:为什么选择Kandinsky-5.0-I2V-Lite-5s 想把手头的照片变成会动的短视频吗?Kandinsky-5.0-I2V-Lite-5s这个工具可以帮你轻松实现。作为一款专为图像转视频设计…...

别再让图片拖慢你的大模型!6种视觉Token压缩方案实战解析(含InternVL、BLIP2代码)

别再让图片拖慢你的大模型!6种视觉Token压缩方案实战解析(含InternVL、BLIP2代码) 当多模态大模型(MLLM)遇上高分辨率图像,视觉Token数量激增往往成为推理速度的瓶颈。本文将从工程实践角度,拆解…...

3大创新技术:重构Android设备标识获取的新范式

3大创新技术:重构Android设备标识获取的新范式 【免费下载链接】Android_CN_OAID 安卓设备唯一标识解决方案,可替代移动安全联盟(MSA)统一 SDK 闭源方案。包括国内手机厂商的开放匿名标识(OAID)、海外手机平…...

Seurat去批次整合实战:如何用多线程加速FindIntegrationAnchors处理大型单细胞数据集

Seurat多线程加速实战:突破大型单细胞数据集整合的性能瓶颈 当单细胞RNA测序技术遇上高通量时代,研究人员手中的数据集正以惊人的速度膨胀。面对数十万细胞的整合分析,传统的单线程处理模式往往让实验陷入漫长的等待——特别是当运行到FindIn…...

CTF-NetA:零基础也能掌握的CTF流量分析终极指南

CTF-NetA:零基础也能掌握的CTF流量分析终极指南 【免费下载链接】CTF-NetA CTF-NetA是一款专门针对CTF比赛的网络流量分析工具,可以对常见的网络流量进行分析,快速自动获取flag。 项目地址: https://gitcode.com/gh_mirrors/ct/CTF-NetA …...

智慧交通货车装载状态满载空载卡车是否载货检测数据集VOC+YOLO格式1053张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):1053标注数量(xml文件个数):1053标注数量(txt文件个数):1053标注类别…...

Windows 查看占用端口的进程,并关闭进程

Windows 查看占用端口的进程,并关闭进程 AI 回答 在 Windows 系统中,当遇到“端口被占用”(Address already in use)的报错时,通常是因为之前的程序没有正常关闭,或者后台有其他服务正在使用该端口。 你可以…...

ArduPilot飞控滤波调优实战:从原理到参数优化

1. 为什么飞控需要滤波调优? 第一次用ArduPilot飞控时,最让我困惑的就是明明硬件和Betaflight完全一样,但飞行手感却天差地别。后来拆解log数据才发现,问题出在传感器数据的"干净程度"上。飞控就像人的小脑,…...

CSS如何实现悬浮气泡提示框_利用-before与-after伪元素渲染尖角效果

用:before/:after画带尖角提示框的核心是仅用border透明边框生成三角形并精确定位,需设父容器position:relative、用px单位、避免:hover在移动端失效,且注意z-index和性能优化。怎么用 :before 和 :after 画出带尖角的悬浮提示框核心就两条:用…...

手机号逆向查询QQ号:Python开发者的高效查询解决方案

手机号逆向查询QQ号:Python开发者的高效查询解决方案 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾在工作中需要快速验证手机号与QQ号的绑定关系?面对批量数据时,手动查询不仅耗时耗力&…...

最后的轻量化机会窗口:2024Q3起CUDA 12.4+Triton 2.3将强制启用新梯度截断协议,旧蒸馏Pipeline即将失效

第一章:大模型工程化中的模型蒸馏技术 2026奇点智能技术大会(https://ml-summit.org) 模型蒸馏是将大型教师模型(Teacher Model)的知识高效迁移至轻量级学生模型(Student Model)的关键工程手段,其核心目标…...

避坑指南:用CesiumLab处理LAS点云时文件打不开?试试CloudCompare预处理

避坑指南:CesiumLab处理LAS点云时的兼容性问题与CloudCompare预处理方案 当你在三维GIS项目中尝试用CesiumLab处理LAS点云数据时,是否遇到过文件无法打开的报错?这往往是数据格式兼容性导致的典型问题。本文将带你深入分析LAS文件的"暗坑…...

揭秘ViGEmBus:Windows内核级游戏控制器模拟引擎深度解析

揭秘ViGEmBus:Windows内核级游戏控制器模拟引擎深度解析 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 在游戏外设兼容性领域,一个看…...

跨平台设备唯一ID获取全攻略:安卓/iOS/鸿蒙Next的实战解析(uni-device-id)

1. 为什么需要跨平台设备唯一ID? 在移动应用开发中,设备唯一标识符就像给每台设备发放的"身份证号"。想象一下,如果你经营一家连锁超市,没有会员卡系统,你就无法识别老顾客的购物习惯。同样,没有…...

BERT中文文本分割效果惊艳展示:学术论文讲义自动划分为‘引言-方法-结论’

BERT中文文本分割效果惊艳展示:学术论文讲义自动划分为引言-方法-结论 1. 效果惊艳开场:让杂乱文本秒变结构清晰 你有没有遇到过这样的情况:拿到一份长达几十页的学术讲座录音转写稿,密密麻麻的文字堆在一起,找不到开…...

App-Installer:彻底摆脱电脑束缚,在iPhone上直接安装任意IPA应用

App-Installer:彻底摆脱电脑束缚,在iPhone上直接安装任意IPA应用 【免费下载链接】App-Installer On-device IPA installer 项目地址: https://gitcode.com/gh_mirrors/ap/App-Installer 你是否曾经因为无法在iPhone上直接安装IPA文件而感到束手无…...

mysql在服务器间如何实现数据热迁移_利用主从复制无缝切换

能,但需严格控制主从延迟和切换时机:须确认Seconds_Behind_Master稳定为0超30秒、从库read_onlyON、binlog_formatROW;停写需应用层优雅断开并校验GTID或位点一致;切换应通过中间件而非直连,并重置从库配置。主从复制能…...