Python用函数实现代码复用
归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言📝
生命对某些人来说是美丽的,这些人的一生都为某个目标而奋斗!
目录
一、函数的定义和调用:
1.函数的定义
2.函数的调用
3. 函数的嵌套
二、函数的参数和返回值:
1.函数的参数
2.默认参数
3.可变参数
4.用户的返回值
5.lambda函数
三、Python 的内置函数:
1.数学运算函数
2.字符串运算函数
3.转换函数
4. 序列操作函数
在计算机语言中,函数是实现某一特定功能的语句集合。函数可以重复使用,提高了代码的可重用性;函数通常实现较为单一的功能,提高了程序的独立性;同一个函数,通过接收不同的参数,实现不同的功能,提高了程序的适应性。Python提供了很多内置函数,用户也可以定义和使用自己的函数。
一、函数的定义和调用:
1.函数的定义
在 Python 中定义函数要使用def关键字,其语法格式如下:
def funcname(paras):
statements
return [expression]
关于函数定义说明如下
函数定义以 def关键字开头,后接函数名称和圆括号()。
paras 是函数的参数,放在函数名后面的圆括号内,参数之间用逗号分隔。
statements是函数体,函数体的前部可以选择性地使用字符串,用于说明函数功能
函数声明以冒号结束,函数体内需要缩进。
return 语句用于结束函数,将返回值传递给调用语句。不带表达式的return 返回 None 值
需要说明的是,如果函数的参数是多个,默认情况下,函数调用时,传人的参数和函数定义
时参数定义的顺序是一致的。
2.函数的调用
函数通过函数名加上一组圆括号来调用,参数放在圆括号内,多个参数之间用逗号分隔。需要注意的是,Pyton 中的所有语句都是解释执行的,def也是一条可执行语句,使用函数时,要求函数的调用必须在函数定义之后。另外,在 Python 中,函数名也是一个变量,如果 return 语句没有返回值,则函数值为 None.
3. 函数的嵌套
函数的嵌套可以从嵌套定义和嵌套调用两方面理解,但通常情况下,嵌套是指函数的嵌套定义。
函数的嵌套定义指的是在函数内部定义的函数,但内嵌的函数只能在该函数内部使用,闭包应用了函数的嵌套定义。
函数的嵌套调用是指在一个函数的内部调用其他函数的过程。嵌套调用是模块化程序设计的基础,合理划分不同的函数,有利于实现程序的模块化。
二、函数的参数和返回值:
1.函数的参数
在定义函数时,参数表中的参数称为形式参数,也称形参。调用函数时,参数表中提供的参数称为实际参数,也称实参。Python中的变量保存的是对象的引用,调用函数的过程就是将实参传递给形参的过程。函数调用时,实参可分为位置参数和赋值参数两种情况。
函数调用时,默认情况下,实参将按照位置顺序传递给形参。
通常情况下,函数调用时,实参默认采用按照位置顺序的方式传递函数。如果参数很多,按位置传递参数的方式可读性较差。
参数值的类型是指函数调用时,传递的实际参数是基本数据类型还是组合数据类型。参数类型不同,在函数调用后,参数值的变化也是不同的。
基本数据类型的变量在函数体外,是全局变量,作为实际参数时,是将常量或变量的值传递给形参,是一种值传递的过程,实参和形参是两个独立不相关的变量,因此,实参值一般是不会改变的。
列表、元组、字典等组合数据类型的变量用作函数参数时,这些变量在函数体外,是全局量。形参和实参之间传递的只是组合数据类型变量的地址(引用),如果在函数内部修改了参数的值,参数的地址是不发生改变的,这种修改将影响到外部的全局变量。
2.默认参数
定义函数时,可以给函数的形式参数设置默认值,这种参数被称为默认参数。当调用函数的时候,由于默认参数在定义时已被赋值了,所以可以直接忽略,而其他参数是必须要传人值的。
如果默认参数没有传人值,则直接使用默认值;如果默认参数传入了值,则使用传人的新值替代。
3.可变参数
在 Python 的函数中,可以定义可变参数。可变参数指的是在函数定义时,该函数可以接受任意个数的参数,参数的个数可能是1个或多个,也可能是0个。可变参数有两种形式,参数名称前加星号(*)或者加两个星号(**)。定义可变参数的函数语法格式如下:
def funname(formal_args,*args,**kwargs)
在上面的函数定义中,formal args 为定义的传统参数,代表一组参数,*args 和**kwargs 为可变参数。函数传入的参数个数会优先匹配 formal args参数的个数,*args 以元组的形式保存多余的参数,**kwargs 以字典的形式保存带有指定名称形式的参数,这种参数也称为关键字参数。
调用函数的时候,如果传入的参数个数和 formal args 参数的个数相同,可变参数会返回空的元组或字典;如果传入参数的个数比 formal args 参数的个数多,可以分为如下两种情况:如果传入的参数没有指定名称,那么*args会以元组的形式存放这些多余的参数;如果传入的参数指定了名称,如score=90,那么**kwargs 会以字典的形式存放这些被命名的参数。
4.用户的返回值
用户可以为函数指定返回值,返回值可以是任意数据类型,return[expression]语句用于退出函数、将表达式值作为返回值传递给调用方。不带参数值的retum语句返回None。
5.lambda函数
lambda 函数是 Python中的匿名函数,该函数实质上是一个lambda 表达式,是不需要使用 def关键字定义的函数,lambda函数的语法格式如下
lambda parameters:expression
其中,parameters是可选的参数表,通常是用逗号分隔的变量或表达式,即位置参数。expression是函数表达式,该表达式中不能包含分支或循环语句。expression 表达式的值将会作为lambda 函数的返回值。
lambda 函数的应用场景是定义简单的、能在一行内表示的函数,返回一个函数类型。Python 提供了很多函数式编程的特性,例如 map、reduce、fiter、sorted 等函数都支持函数作为参数,lambda 函数也可以很方便地应用在函数式编程中。
三、Python 的内置函数:
1.数学运算函数
与数学运算相关的常用 Python 内置函数如表 6.1所示
2.字符串运算函数
字符串作为一种最常用的数据类型,它提供了大小写转换、查找替换、拆分合并等函数
3.转换函数
转换函数主要用于不同数据类型之间的转换,常见的内置转换函数如表 6.2所示。
4. 序列操作函数
序列作为一种重要的数据结构,包括字符串、列表、元组等,表6.3中的函数主要针对列表元组两种数据结构。
相关文章:

Python用函数实现代码复用
归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言📝 生命对某些人来说是美丽的,…...

2024年腾讯云优惠代金券领取入口整理汇总,收藏级笔记
腾讯云优惠代金券领取入口共三个渠道,腾讯云新用户和老用户均可领取8888元代金券,可用于云服务器等产品购买、续费和升级使用,阿腾云atengyun.com整理腾讯云优惠券(代金券)领取入口、代金券查询、优惠券兑换码使用方法…...

nn.Linear() 使用提醒
原本以为它是和nn.Conv2d()一样,就看第二个维度的数值,今天才知道,它是只看最后一个维度的数值!!! 例子1 Descripttion: Result: Author: Philo Date: 2024-02-27 14:33:50 LastEditors: Philo LastEditT…...
python difflib --- 计算差异的辅助工具
此模块提供用于比较序列的类和函数。 例如,它可被用于比较文件,并可产生多种格式的不同文件差异信息,包括 HTML 和上下文以及统一的 diff 数据。 有关比较目录和文件,另请参阅 filecmp 模块。 class difflib.SequenceMatcher 这…...
HTML5浮动
1.标准文档流组成 块级元素(block) 内联元素(inline) 2.display属性 作用:指定HTML标签的显示方式 常用属性 值 说明 block 块级元素的默认值,元素会被显示为块级元素,该元素前后会带有换行…...

Unity 向量计算、欧拉角与四元数转换、输出文本、告警、错误、修改时间、定时器、路径、
using System.Collections; using System.Collections.Generic; using UnityEngine;public class c2 : MonoBehaviour {// 定时器float t1 0;void Start(){// 向量Vector3 v1 new Vector3(0, 0, 2);Vector3 v2 new Vector3(0, 0, 3);// 计算两个向量的夹角Debug.Log(Vector3…...
前端实现浏览器打印
浏览器的print方法直接调用会打印当前页面的所有元素,使用iframe可以实现局部打印所需要的模块。 组件printView,将传入的信息放入iframe中,调用浏览器的打印功能 <template><div class"print"><iframeid"if…...

iOS卡顿原因与优化
iOS卡顿原因与优化 1. 卡顿简介 卡顿: 指用户在使用过程中出现了一段时间的阻塞,使得用户在这一段时间内无法进行操作,屏幕上的内容也没有任何的变化。 卡顿作为App的重要性能指标,不仅影响着用户体验,更关系到用户留…...

关于synchronized介绍
synchronized的特性 1. 乐观锁/悲观锁自适应,开始时是乐观锁,如果锁冲突频繁,就转换为悲观锁 2.轻量级/重量级锁自适应 开始是轻量级锁实现,如果锁被持有的时间较长,就转换成重量级锁 3.自旋/挂起等待锁自适应 4.不是读写锁 5.非公平锁 6,可重入锁 synchronized的使用 1&#…...

NCDA设计大赛获奖作品剖析:UI设计如何脱颖而出?
第十二届大赛简介 - 未来设计师全国高校数字艺术设计大赛(NCDA)开始啦!视觉传达设计命题之一: ui 设计,你想知道的都在这里。为了让大家更好的参加这次比赛,本文特别为大家整理了以往NCDA大赛 UI 设计的优秀获奖作品&a…...

软考中级 软件设计师备考经验
考试介绍 软考中级的软件设计师需要考两个部分,选择题和大题,每科满分75,需要在同一次考试中两科同时大于等于45分才算通过。考试的内容包括计算机组成原理、数据结构、数据库、专业英语、信息安全、计算机网络等,范围比较广但考…...
Python猜数字小游戏
下面这段代码是一个简单的数字猜测游戏,其中计算机已经提前计算出了414 // 23的结果并存储在变量num中。然后,程序会提示用户来猜测这个结果。 以下是代码的主要步骤和功能: 初始化: num 414 // 23:计算414除以23的整…...

SQL面试题(2)
第一题 创建trade_orders表: create table `trade_orders`( `trade_id` varchar(255) NULL DEFAULT NULL, `uers_id` varchar(255), `trade_fee` int(20), `product_id` varchar(255), `time` varchar(255) )ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_…...
python常用pandas函数nlargest 和 nsmallest及其手动实现
pandas是Python数据分析的重要工具之一,提供了大量便捷的数据操作方法。nlargest和nsmallest是pandas中两个非常实用的函数,它们可以帮助我们快速找出Series或DataFrame中最大或最小的n个值。 ### pandas中的nlargest和nsmallest函数 - nlargest(n, colu…...

第六课:NIO简介
一、传统BIO的缺点 BIO属于同步阻塞行IO,在服务器的实现模型为,每一个连接都要对应一个线程。当客户端有连接请求的时候,服务器端需要启动一个新的线程与之对应处理,这个模型有很多缺陷。当客户端不做出进一步IO请求的时候,服务器…...

在vue2中使用饼状图
1.引入vue2和echarts <script src"https://cdn.jsdelivr.net/npm/vue2.7.14/dist/vue.js"></script> <script src"https://cdn.jsdelivr.net/npm/echarts5.4.0/dist/echarts.min.js"></script> 2.1 补充基本的body内容 <div id…...
面经(五)南京 软通动力 一面
注:已经有了接近一年的工作经验 总体评价 不完全是技术面,面试经过还行,但可能是期望岗位和对方需求不太一致,感觉不太好过 面试经过 HR找你,发简历入库,然后商量面试时间,发腾讯会议链接腾…...

线段树模型及例题整理
线段树的应用范围非常广,可以处理很多与区间有关的题目。 将区间抽象成一个节点,在这个节点中储存这个区间的一些值,那么如果看成节点的话,这就很像一棵满二叉树,所以我们可以用一维数组来储存节点。那么就要考虑父子节…...

揭秘Java性能调优的层次 | 综合多方向提升应用程序性能与系统高可用的关键(架构层次规划)
揭秘性能调优的层次 | 综合多方向提升应用程序性能与系统的高可用 前言介绍调优层次调优 — 设计案例说明 - 操作轮询控制事件驱动 调优 — 代码案例说明 - ArrayList和LinkedList性能对比案例说明 - 文件读写实现方式的性能对比 调优 — JVMJVM架构分布JVM调优方向**JVM垃圾回…...

事件循环解析
浏览器的进程模型 何为进程? 程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程 每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。 何为线程? 有了进程后&…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...

代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...