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

Python函数完全指南:从零基础到灵活运用

Python函数是组织代码、实现代码复用的基本单元,也是Python编程中最重要的概念之一。本文将全面介绍Python函数的知识体系,帮助初学者系统掌握函数的使用方法。

一、函数基础概念

1. 什么是函数?

函数是一段可重复使用的代码块,用于执行特定任务。Python中的函数具有以下特点:

  • 使用def关键字定义

  • 可以接收输入参数

  • 可以返回处理结果

  • 提高代码复用性和可读性

2. 为什么需要函数?

  • 避免重复代码:相同功能只需编写一次

  • 模块化编程:将复杂问题分解为小函数

  • 提高可读性:通过函数名表达代码意图

  • 便于维护:修改只需调整函数内部

二、函数定义与调用

1. 基本语法

def 函数名(参数1, 参数2, ...):"""文档字符串(可选)"""函数体return 返回值

 2. 简单示例

# 定义函数
def greet(name):"""向指定名字的人问好"""return f"Hello, {name}!"# 调用函数
message = greet("Alice")
print(message)  # 输出: Hello, Alice!

三、函数参数详解

1. 位置参数

最常见的参数类型,按位置顺序传递:

def power(base, exponent):return base ** exponentprint(power(2, 3))  # 8,2是base,3是exponent

2. 默认参数

定义函数时可为某些参数指定默认值,如果不传参则使用默认值。默认值参数必须位于无默认值参数的后面。 调用时可省略指定默认值:

def power(base, exponent=2):return base ** exponentprint(power(3))     # 9,使用默认exponent=2
print(power(3, 3))  # 27

注意:默认参数必须放在非默认参数后面

3. 关键词参数

通过参数名指定值,不受位置限制:

def person_info(name, age, city):print(f"{name}, {age}岁, 来自{city}")person_info(age=25, city="北京", name="张三")

4. 可变参数

4.1 *args 接收任意数量的位置参数,将多余的位置参数收集成一个元组。
def sum_numbers(*args):return sum(args)print(sum_numbers(1, 2, 3))  # 6
print(sum_numbers(1, 2, 3, 4, 5))  # 15

 4.2 **kwargs 接收任意数量的关键字参数,将多余的关键词参数收集成一个字典。

def print_info(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")print_info(name="Alice", age=25, city="New York")# 输出:
# name: Alice
# age: 25
# city: New York

5. 参数组合使用

各种参数类型可以组合使用,顺序必须为:

  1. 位置参数

  2. *args

  3. 默认参数

  4. **kwargs

def complex_func(a, b, *args, c=10, **kwargs):print(f"a={a}, b={b}, args={args}, c={c}, kwargs={kwargs}")complex_func(1, 2, 3, 4, c=5, x=6, y=7)
# 输出: a=1, b=2, args=(3, 4), c=5, kwargs={'x': 6, 'y': 7}

四、返回值与作用域

1. return语句

  • 用于返回函数结果

  • 可以返回多个值(实际上是返回元组)

  • 遇到return立即结束函数执行

def min_max(numbers):return min(numbers), max(numbers)result = min_max([1, 2, 3, 4, 5])
print(result)  # (1, 5)

2. 变量作用域

  • 局部变量:函数内部定义的变量,只在函数内有效

  • 全局变量:函数外部定义的变量,整个程序有效

x = 10  # 全局变量def func():y = 5  # 局部变量global xx = 20  # 修改全局变量func()
print(x)  # 20
print(y)  # 报错,y未定义

五、特殊类型函数

1. 匿名函数(lambda)

用于创建小型匿名函数:

square = lambda x: x ** 2
print(square(5))  # 25# 常用于排序等场景
students = [{"name": "Alice", "age": 20}, {"name": "Bob", "age": 18}]
students.sort(key=lambda s: s["age"])

2. 递归函数

函数调用自身:

def factorial(n):return 1 if n == 1 else n * factorial(n-1)print(factorial(5))  # 120=5*4*3*2*1

3. 生成器函数

使用yield返回一个生成器:

def count_down(n):while n > 0:yield nn -= 1for i in count_down(5):print(i)  # 5,4,3,2,1

六、函数高级特性

1. 函数作为参数

Python中函数是一等公民,可以作为参数传递:

def apply(func, x, y):return func(x, y)def add(a, b):return a + bprint(apply(add, 2, 3))  # 5

2. 闭包

函数内部定义函数,并返回内部函数:

def make_multiplier(factor):def multiplier(x):return x * factorreturn multiplierdouble = make_multiplier(2)
print(double(5))  # 10

3. 装饰器

修改或增强函数功能:

def log_time(func):def wrapper(*args, **kwargs):import timestart = time.time()result = func(*args, **kwargs)print(f"执行时间: {time.time()-start:.4f}秒")return resultreturn wrapper@log_time
def slow_func():import timetime.sleep(1)slow_func()  # 输出执行时间

七、函数最佳实践

  1. 命名规范

    • 使用小写字母和下划线

    • 动词开头表示动作(如get_data()

    • 名词开头表示查询(如user_info()

  2. 函数长度

    • 建议不超过20行

    • 功能单一(一个函数只做一件事)

  3. 文档字符串

    • 使用三重引号编写文档

    • 说明函数功能、参数和返回值

def calculate_area(radius):"""计算圆的面积参数:radius (float): 圆的半径返回:float: 圆的面积"""return 3.14159 * radius ** 2
  1. 参数设计

    • 避免过多参数(建议不超过5个)

    • 复杂参数考虑使用字典或对象

八、实战案例:学生成绩管理系统

# 学生数据存储
students = []# 添加学生信息
def add_student(name, chinese, math, english):"""添加学生成绩"""student = {"name": name,"scores": {"chinese": chinese,"math": math,"english": english},"total": chinese + math + english,"average": round((chinese + math + english) / 3, 2)}students.append(student)print(f"成功添加学生: {name}")# 查询学生信息
def find_student(name):"""按姓名查找学生"""for student in students:if student["name"] == name:print(f"姓名: {name}")print(f"语文: {student['scores']['chinese']}")print(f"数学: {student['scores']['math']}")print(f"英语: {student['scores']['english']}")print(f"总分: {student['total']}")print(f"平均分: {student['average']}")returnprint(f"未找到学生: {name}")# 统计功能
def show_statistics():"""显示统计信息"""if not students:print("暂无学生数据")returnchinese_scores = [s["scores"]["chinese"] for s in students]math_scores = [s["scores"]["math"] for s in students]english_scores = [s["scores"]["english"] for s in students]print("\n=== 成绩统计 ===")print(f"学生总数: {len(students)}")print(f"语文平均分: {sum(chinese_scores)/len(chinese_scores):.2f}")print(f"数学平均分: {sum(math_scores)/len(math_scores):.2f}")print(f"英语平均分: {sum(english_scores)/len(english_scores):.2f}")print("===============")# 使用示例
add_student("张三", 85, 90, 78)
add_student("李四", 92, 88, 95)
find_student("张三")
show_statistics()

九、常见问题解答

Q:函数中什么时候需要return?
A:当需要将结果传递给调用者时使用return,无return或return后无值则返回None

Q:如何让函数修改全局变量?
A:在函数内使用global关键字声明变量

Q:lambda函数和普通函数有什么区别?
A:lambda是单行匿名函数,不能包含复杂逻辑和多个语句

Q:递归函数有什么缺点?
A:递归深度过大会导致栈溢出,Python默认递归深度限制为1000

十、总结与学习建议

通过本文的学习,你应该已经掌握了:

  1. Python函数的定义和调用方法

  2. 各种参数类型的区别和使用场景

  3. 返回值处理和作用域规则

  4. 高阶函数特性和最佳实践

下一步学习建议

  1. 尝试将已有代码重构为函数式结构

  2. 学习Python内置高阶函数(map, filter, reduce)

  3. 探索面向对象编程中的类方法

  4. 实践装饰器的各种应用场景

记住,函数是Python编程的基石,只有通过大量实践才能真正掌握。建议从解决小问题开始,逐步构建更复杂的函数组合。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

Python函数完全指南:从零基础到灵活运用

Python函数是组织代码、实现代码复用的基本单元,也是Python编程中最重要的概念之一。本文将全面介绍Python函数的知识体系,帮助初学者系统掌握函数的使用方法。 一、函数基础概念 1. 什么是函数? 函数是一段可重复使用的代码块&#xff0c…...

第十章.XML

文章目录 1.XMl简介2.解析XML技术2.1DOM解析XML 2.2DOM4j3.json 1.XMl简介 EXtensible Markup Language ,可扩充标记语言 特点: XML与操作系统,编程语言的开发平台无关实现不同系统之间的数据交换 作用: 数据交互配置应用程序和网站 XML标签 xml文档由一系列标签元素组成<…...

5个情感丰富GPT-4o图像提示词(不是吉卜力风格)

一场新的创意运动正在迅速兴起——人们不仅使用ChatGPT进行写作,还用它来构思富有想象力、情感丰富的视觉概念。 这一趋势正在改变我们讲故事、建立品牌和探索创意的方式。从异想天开的海报世界到基于物品的故事叙述,各行业的创作者正在将ChatGPT与视觉生成工具结合使用,赋…...

华为OD机试真题——求最多可以派出多少支队伍(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C、GO六种语言的最佳实现方式&#xff1b; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析&#xff1b; 本文收录于专栏&#xff1a;《2025华为OD真题目录…...

《七年一剑》速读笔记

文章目录 书籍信息概览知己知彼市场的本质认识自我了解他人人剑合一 技术分析精要K线分型均线节奏形态画线成交量周期级别指标之王——MACD波动理论 管窥基本面A股周期论实战角度看财报 构建交易系统打开交易之门交易基础之买卖依据风险控制与仓位管理系统评估及情绪管理 实战秘…...

VMware-centOS7安装redis分布式集群

1.部署redis包 1.1 在usr/local文件夹里创建文件夹 mkdir software 1.2 进入文件夹 cd /usr/local/software/ 下载redis wget http://download.redis.io/releases/redis-6.2.6.tar.gz解压 tar zxvf redis-6.2.6.tar.gz重命名文件夹 mv redis-6.2.6 redis安装gcc编译器 yum i…...

Kubernetes(k8s)学习笔记(六)--KubeSphere前置环境安装

1、安装 helm&#xff08;master 节点执行&#xff09; Helm 是 Kubernetes 的包管理器。包管理器类似于我们在 Ubuntu 中使用的apt、Centos 中使用的 yum 或者 Python 中的 pip 一样&#xff0c;能快速查找、下载和安装软件包。Helm由客户端组件 helm 和服务端组件 Tiller 组…...

黑马点评day01(基于Redis)

1.7 Redis代替session的业务流程 1.7.1、设计key的结构 首先我们要思考一下利用redis来存储数据&#xff0c;那么到底使用哪种结构呢&#xff1f;由于存入的数据比较简单&#xff0c;我们可以考虑使用String&#xff0c;或者是使用哈希&#xff0c;如下图&#xff0c;如果使用…...

14.Excel:排序和筛选

一 位置 两个位置。 二 排序&#xff1a;如何使用 1.常规使用 补充&#xff1a;不弹出排序提醒排序。 选中要排序列中的任意一个单元格&#xff0c;然后排序。 2.根据要求进行排序 1.根据姓名笔画进行降序排序 要勾选上数据包含标题&#xff0c;默认是勾选了。 2.根据运营部、…...

力扣-字符串-468 检查ip

思路 考察字符串的使用&#xff0c;还有对所有边界条件的检查 spilt&#xff08;“\.”&#xff09;&#xff0c;toCharArray&#xff0c;Integer.parseInt() 代码 class Solution {boolean checkIpv4Segment(String str){if(str.length() 0 || str.length() > 4) retur…...

C++名称空间

名称空间 名称空间可以是全局的&#xff0c;也可以位于另一个名称空间中&#xff0c;但不能位于代码块中。因此&#xff0c;在默认情况下&#xff0c;在名称空间中声明的名称的链接性为外部的&#xff08;除非它引用了常量&#xff09; 名称空间是开放的&#xff0c;你可以在…...

Redis 过期与淘汰机制全解析

概述 Redis 作为一种高性能的内存数据库&#xff0c;提供了数据过期和淘汰策略以管理存储的数据。本文将详细探讨 Redis 中数据失效的基本原理、实现方式&#xff0c;并结合源码进行分析&#xff0c;帮助读者更深入地理解和优化 Redis 的使用。 数据过期机制 过期键的存储方…...

PMP-第四章 项目整合管理(一)

项目整合管理 项目整合管理包括对项目管理过程组内的各种过程和项目管理活动而进行识别、定义、组合、统一与协调的各种过程和活动项目整合管理必须由项目经理负责。其他知识领域可以由相关领域专家管理&#xff0c;但整合的责任不能被授权或转移项目与项目管理本质上具有整合…...

VSCode搭建STM32开发调试环境

闲言碎语&#xff1a; 好久没更&#xff0c;在忙着科研→校招→写毕业论文。 临近毕业&#xff0c;总结自己的大学生活&#xff1a;C\C、Java、Python、深度学习&#xff0c;学的乱七八糟。 秋招找了个嵌入式工作&#xff08;涉及AI应用&#xff09;&#xff0c;大致确定了以后…...

【数据结构】稀疏矩阵的快速转置

稀疏矩阵的快速转置 如图给出一个稀疏矩阵&#xff0c;要求表示出它的转置矩阵 由这个矩阵我们能轻松得到它的三元组顺序表 6行&#xff08;x坐标&#xff09;7列&#xff08;y坐标&#xff09;8个元素121213931-3361443245218611564-7 接下来我们同样把转置后的矩阵的三元组…...

【Godot】使用 Shader 实现可调节的精确切角效果

今天我们要实现的是一个四角精确切割Shader,可以在UI元素或Sprite的四个角分别切割出不同大小的三角形区域。 文章目录 什么是Godot Shader?数学原理详解左上角切割右上角切割右下角切割左下角切割四角切割Shader完整代码使用方法在Godot编辑器中设置通过代码控制进阶技巧1. …...

在CentOS环境中安装MySQL数据库保姆级教程

一.确认当前系统版本 1.1登录系统&#xff0c;切换至root账户 如图所示&#xff1a; 1.2&#xff1a;在终端中执行如下命令查看系统版本 cat /etc/redhat-release 二.添加 MySQL Yum 源 2.1访问MySQL开发者专区 https://dev.mysql.com/downloads/repo/yum/ TIPS: 1.发布包命…...

分布式系统中的 ActiveMQ:异步解耦与流量削峰(二)

四、流量削峰 &#xff08;一&#xff09;流量削峰原理深入解析 在当今互联网应用中&#xff0c;高并发场景屡见不鲜 。例如&#xff0c;电商平台的促销活动、在线票务系统的抢票时刻以及社交平台的热点事件爆发期等&#xff0c;都会在短时间内迎来大量用户请求。这些瞬间涌入…...

JAVA设计模式——(十)抽象工厂模式(Abstract Factory Pattern)

JAVA设计模式——&#xff08;十&#xff09;抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09; 介绍理解实现工厂接口工厂实现类应用类应用类实现测试改造工厂类 应用 介绍 抽象工厂模式在工厂模式的基础上&#xff0c;适配的对象变为一组相关的对象&#xff0c…...

STM32的定时器

定时器的介绍 介绍&#xff1a;STM32F103C8T6微控制器内部集成了多种类型的定时器&#xff0c;这些定时器在嵌入式系统中扮演着重要角色&#xff0c;用于计时、延时、事件触发以及PWM波形生成、脉冲捕获等应用。 *几种定时器&#xff08;STM32F103系列&#xff09;&#xff1…...

ubuntu-PyQt5安装+PyCharm配置QtDesigner + QtUIC

个人环境 ubuntu22.04 pycharm 2024.3 python 3.10 1)先使用apt命令在线安装 1)sudo apt install pyqt5* 2)sudo apt install qttools5-dev-tools2&#xff09;Pycharm配置Pycharm External Tool 在设置—工具——外部工具中 配置QtDesigner Name &#xff1a;QtDesigne…...

测试基础笔记第十九天

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、接口的概念二、接口的类型三、接口测试1.概念2.原理&#xff1a;3.特点:4.实现方式:5.什么是自动化接口测试&#xff1f; 二、HTTP协议1.HTTP协议简介2.URL格式…...

Ubuntu 系统上广受好评的浏览器推荐

日常使用与开发者首选 Firefox 特点&#xff1a;开源、隐私保护强大&#xff0c;支持丰富扩展&#xff08;如开发者工具、广告拦截&#xff09;&#xff0c;默认预装且跨平台兼容368。 适用场景&#xff1a;日常浏览、开发者调试&#xff08;支持实时 CSS/JS 编辑&#xff09;、…...

第 13 届蓝桥杯 C++ 青少组省赛中 / 高级组真题解析

一、选择题 第 1 题 题目&#xff1a;下列关于类中声明的变量描述正确的是 ( )&#xff61; 选项&#xff1a; A. 只属于该类 B. 属于全局变量 C. 任何情况下都可被该类所有实例共享 D. 属于该类&#xff0c;某些情况下也可被该类不同实例所共享 答案&#xff1a;D 解析&…...

Win10下安装Linux-Ubuntu24.04双系统

0 引言 Ubuntu 24.04 LTS&#xff08;代号“Noble Numbat”&#xff09;是 Canonical 于 2024 年 4 月 25 日发布的第 10 个长期支持版本&#xff0c;专注于性能优化、企业安全和开发者体验提升 Windows 10 是微软于 2015 年 7 月发布的跨平台操作系统&#xff0c;融合了传统桌…...

express 怎么搭建 WebSocket 服务器

一&#xff1a;使用 express-ws var express require(express); var app express(); var expressWs require(express-ws)(app);app.use(function (req, res, next) {console.log(middleware);req.testing testing;return next(); });app.get(/, function(req, res, next){…...

模型部署——cuda编程入门

CUDA中的线程与线程束 kernel是在device上线程中并行执行的函数&#xff0c;核函数用__global__符号声明&#xff0c;在调用时需要用<<<grid_size, block_size>>>来指定kernel要执行的线程数量。在CUDA中&#xff0c;每一个线程都要执行核函数&#xff0c;并…...

llfc项目TCP服务器笔记

ChatServer 一个TCP服务器必然会有连接的接收,维持,收发数据等逻辑。那我们就要基于asio完成这个服务的搭建。主服务是这个样子的 #include "LogicSystem.h"#include <csignal>#include <thread>#include <mutex>#include "AsioIOServiceP…...

NPP库中libnppi模块介绍

1. libnppi 模块简介 libnppi 是 NPP 库中专门用于 图像处理 的模块&#xff0c;提供高度优化的 GPU 加速函数&#xff0c;支持&#xff1a; 图像滤波&#xff08;卷积、形态学操作&#xff09; 几何变换&#xff08;旋转、缩放、透视变换&#xff09; 颜色空间转换&#xf…...

从头训练小模型: 3 传统RLHF与DPO的区别

这个步骤我其实是忽略了。如果我的目标是建立一个安全领域的模型&#xff0c;我个人理解这步骤并不太必要。关于人类偏好对齐&#xff1a;在前面的训练步骤中&#xff0c;模型已经具备了基本的对话能力。 此时模型还不知道什么是好的回答&#xff0c;什么是不好的回答。我们希…...

Python-Django系列—视图

一、通用显示视图 以下两个基于类的通用视图旨在显示数据。在许多项目中&#xff0c;它们通常是最常用的视图。 1、DetailView class django.views.generic.detail.DetailView 当该视图执行时&#xff0c;self.object 将包含该视图正在操作的对象。 祖先&#xff08;MRO&a…...

el-input Vue 3 focus聚焦

https://andi.cn/page/622173.html...

动态规划(5)路径问题--剑指offer -珠宝的最大值

题目&#xff1a; 现有一个记作二维矩阵 frame 的珠宝架&#xff0c;其中 frame[i][j] 为该位置珠宝的价值。拿取珠宝的规则为&#xff1a; 只能从架子的左上角开始拿珠宝每次可以移动到右侧或下侧的相邻位置到达珠宝架子的右下角时&#xff0c;停止拿取 注意&#xff1…...

ZArchiver正版:高效文件管理,完美解压体验

在使用安卓设备的过程中&#xff0c;文件管理和压缩文件的处理是许多用户常见的需求。无论是解压下载的文件、管理手机存储中的文件&#xff0c;还是进行日常的文件操作&#xff0c;一款功能强大且操作简便的文件管理工具都能极大地提升用户体验。今天&#xff0c;我们要介绍的…...

Netlink在SONiC中的应用

Netlink在SONiC中的应用 Netlink介绍 Netlink 是 Linux 内核态程序与用户空间程序之间进行通信的机制之一&#xff0c;原本是用于传递网络协议栈中的各种控制消息。它采用和套接字&#xff08;socket&#xff09;编程接口相同的形式&#xff0c;常用于配置内核网络子系统&…...

ReentrantLock实现公平锁和非公平锁

在 Java 里&#xff0c;公平锁和非公平锁是多线程编程中用于同步的两种锁机制&#xff0c;它们的主要差异在于获取锁的顺序规则。下面是对二者的详细介绍&#xff1a; 公平锁 公平锁遵循 “先来先服务” 原则&#xff0c;也就是线程获取锁的顺序和请求锁的顺序一致。先请求锁…...

【C++】 —— 笔试刷题day_25

一、笨小猴 题目解析 这道题&#xff0c;给定一个字符str&#xff0c;让我们找到这个字符串中出现次数最多字母的出现次数maxn和出现次数最少字母的出现次数minn&#xff1b; 然后判断maxn - minn是否是一个质数&#xff0c;如果是就输出Lucky Word和maxn - minn&#xff1b;如…...

terraform resource创建了5台阿里云ecs,如要使用terraform删除其中一台主机,如何删除?

在 Terraform 中删除阿里云 5 台 ECS 实例中的某一台&#xff0c;具体操作取决于你创建资源时使用的 多实例管理方式&#xff08;count 或 for_each&#xff09;。以下是详细解决方案&#xff1a; 方法一&#xff1a;使用 for_each&#xff08;推荐&#xff09; 如果创建时使…...

Office 三大组件Excel、Word、Access 里 VBA 区别对比

以下是Excel、Word和Access在VBA中的主要区别对比及详细说明: 核心对象模型 Excel Workbook(工作簿)→ Worksheet(工作表)→ Range(单元格区域) 核心围绕单元格数据处理,如 Cells(1,1).Value = "数据" Word Document(文档)→ Range(文本范围)→ Paragrap…...

Linux 进程基础(二):操作系统

目录 一、什么是操作系统&#xff1a;用户和电脑之间的「翻译官」&#x1f310; OS 的层状结构&#x1f9e9; 案例解析&#xff1a;双击鼠标的「跨层之旅」 二、操作系统的必要性探究&#xff1a;缺乏操作系统的环境面临的挑战剖析&#x1f511; OS 的「管理者」属性&#xff1…...

Java高并发处理核心技术详解:从理论到实战

高并发处理能力是衡量系统性能的重要指标。Java作为企业级开发的主力语言&#xff0c;提供了丰富的并发编程工具和框架。 一、Java并发基础 1.1 Java内存模型&#xff08;JMM&#xff09; 主内存与工作内存&#xff1a;每个线程拥有独立的工作内存&#xff0c;通过JMM协议与主…...

单细胞测序数据分析试验设计赏析(二)

单细胞测序数据分析试验设计赏析&#xff08;二&#xff09; 这次的单细胞测序数据分析的试验设计是单细胞测序分析机器学习&#xff08;with SHAP分析&#xff09;&#xff0c;也是常见的试验设计之一&#xff0c;重点是可以用于筛选鉴定基因调控网络&#xff0c;也可以是构建…...

Docker 服务搭建

&#x1f4a2;欢迎来到张翊尘的开源技术站 &#x1f4a5;开源如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 Docker 服务搭建在 Ubuntu 上安装 Docker更新软件…...

4电池_基于开关电容的均衡

基于开关电容的均衡系统&#xff08;Switched-Capacitor Equalization System&#xff09; 开关电容均衡&#xff08;Switched-Capacitor Equalization, SCE&#xff09;是一种广泛应用于 电池组&#xff08;如锂电池、超级电容组&#xff09; 的主动均衡技术&#xff0c;通过电…...

Matlab/Simulink - BLDC直流无刷电机仿真基础教程(七) - 波形解析专题P2

Matlab/Simulink - BLDC直流无刷电机仿真基础教程&#xff08;七&#xff09; - 波形解析专题P2 前言一、缺相与相线错接解析二、电源电压波动三、电机感量及磁链变化四、负载突变及堵转五、换相时机不当及换相错误参考链接 前言 本系列文章分享如何使用Matlab的Simulink功能来…...

如何从GitHub上调研优秀的开源项目,并魔改应用于工作中?

在 Go 语言学习中&#xff0c;我们经常会去学习一些优秀的开源项目。但是学完之后&#xff0c;发现很快就忘记了或者学习效果并不好。学习一个开源项目最好的方式就是围绕这个开源项目进行实战。例如&#xff0c;直接魔改这个开源项目并应用于工作中。本文来介绍下如何调用&…...

【Java学习笔记】构造器

构造器(constructor)&#xff08;又名构造方法&#xff09; 作用&#xff1a;可以在创建对象时就初始化属性&#xff0c;注意不是创建 基本结构 [修饰符] 方法名&#xff08;形参列表&#xff09;{方法体&#xff1b; }代码示例 public class 构造器 {public static void m…...

Redis 数据类型详解(一):String 类型全解析

文章目录 前言一、什么是 Redis 的 String 类型&#xff1f;二、常用命令1.SET2.GET3.MSET4.MGET5.INCR6.INCRBY7.INCRBYFLOAT8.SETNX9.SETEX 三、注意事项总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 在学习 Redis 的过程中&#xff0c;最基础也…...

JAVA---多态

面向对象三大特征&#xff1a;封装、继承、多态 多态 定义&#xff1a;同类型的对象&#xff0c;表现出的不同形态。 它允许不同类的对象通过同一个接口进行调用&#xff0c;并且在运行时根据实际对象类型执行不同的方法。 多态主要通过继承、接口和方法重写来实现。 表现形式…...

K8S的使用(部署pod\service)+安装kubesphere图形化界面使用和操作

master节点中通过命令部署一个tomcat 查看tomcat被部署到哪个节点上 在节点3中进行查看 在节点3中进行停止容器&#xff0c;K8S会重新拉起一个服务 如果直接停用节点3&#xff08;模拟服务器宕机&#xff09;&#xff0c;则K8S会重新在节点2中拉起一个服务 暴露tomcat访…...