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

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用函数实现代码复用

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

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方法直接调用会打印当前页面的所有元素&#xff0c;使用iframe可以实现局部打印所需要的模块。 组件printView&#xff0c;将传入的信息放入iframe中&#xff0c;调用浏览器的打印功能 <template><div class"print"><iframeid"if…...

iOS卡顿原因与优化

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

关于synchronized介绍

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

NCDA设计大赛获奖作品剖析:UI设计如何脱颖而出?

第十二届大赛简介 - 未来设计师全国高校数字艺术设计大赛&#xff08;NCDA&#xff09;开始啦&#xff01;视觉传达设计命题之一: ui 设计&#xff0c;你想知道的都在这里。为了让大家更好的参加这次比赛&#xff0c;本文特别为大家整理了以往NCDA大赛 UI 设计的优秀获奖作品&a…...

软考中级 软件设计师备考经验

考试介绍 软考中级的软件设计师需要考两个部分&#xff0c;选择题和大题&#xff0c;每科满分75&#xff0c;需要在同一次考试中两科同时大于等于45分才算通过。考试的内容包括计算机组成原理、数据结构、数据库、专业英语、信息安全、计算机网络等&#xff0c;范围比较广但考…...

Python猜数字小游戏

下面这段代码是一个简单的数字猜测游戏&#xff0c;其中计算机已经提前计算出了414 // 23的结果并存储在变量num中。然后&#xff0c;程序会提示用户来猜测这个结果。 以下是代码的主要步骤和功能&#xff1a; 初始化&#xff1a; num 414 // 23&#xff1a;计算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数据分析的重要工具之一&#xff0c;提供了大量便捷的数据操作方法。nlargest和nsmallest是pandas中两个非常实用的函数&#xff0c;它们可以帮助我们快速找出Series或DataFrame中最大或最小的n个值。 ### pandas中的nlargest和nsmallest函数 - nlargest(n, colu…...

第六课:NIO简介

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

在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…...

面经(五)南京 软通动力 一面

注&#xff1a;已经有了接近一年的工作经验 总体评价 不完全是技术面&#xff0c;面试经过还行&#xff0c;但可能是期望岗位和对方需求不太一致&#xff0c;感觉不太好过 面试经过 HR找你&#xff0c;发简历入库&#xff0c;然后商量面试时间&#xff0c;发腾讯会议链接腾…...

线段树模型及例题整理

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

揭秘Java性能调优的层次 | 综合多方向提升应用程序性能与系统高可用的关键(架构层次规划)

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

事件循环解析

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

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...

算术操作符与类型转换:从基础到精通

目录 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符&#xff1a;、-、*、/、% 赋值操作符&#xff1a;和复合赋值 单⽬操作符&#xff1a;、--、、- 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...

基于单片机的宠物屋智能系统设计与实现(论文+源码)

本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢&#xff0c;连接红外测温传感器&#xff0c;可实时精准捕捉宠物体温变化&#xff0c;以便及时发现健康异常&#xff1b;水位检测传感器时刻监测饮用水余量&#xff0c;防止宠物…...