函数与模块
目录
1.函数
1.1.函数概念
1.2.函数定义
1.3.函数分类
1.4.函数参数类型
1.4.1.位置参数
1.4.2.关键字参数
1.4.3.默认值参数
1.4.4.可变参数
1.5.匿名函数
1.6.参数传递问题
2.冒泡排序
2.1.冒泡排序规则
2.2.冒泡排序实现
3.math 模块
4.random 模块
5.datetime 模块
6.re 模块
6.1.正则表达式语法
6.1.1.字符匹配
6.1.2.数量词匹配
6.1.3.特殊字符匹配
6.1.4.边界字符
6.2.python 正则表达式常用函数
7.json 模块
1.函数
1.1.函数概念
在 Python 中,函数(Function)是一段可重用的代码块,用于执行特定的任务或完成特定的功能。函数可以接受输入参数(也称为参数或形参)并返回一个结果。通过函数,可以将程序划分为较小的模块,使代码更加有组织、可读性更好,并且可以提高代码的重用性。
函数的定义通常包括以下几个部分:
- 函数名:用于标识函数的名称,以便在程序中调用它。(命令规则和变量名一样)
- 参数:函数可以接受零个或多个参数作为输入。参数是可选的,可以根据需要定义。
- 函数体:函数体是一组执行特定任务的语句块。它是函数的实际代码逻辑。
- 返回值:函数可以返回一个值作为结果。使用 return 语句指定函数的返回值。
1.2.函数定义
返回值类型提醒最好写,不写也行。
参数列表可有可无,根据需求灵活而定。
1.3.函数分类
- 无参无返回值
- 无参有返回值
- 有参无返回值
- 有参有返回值
当有无法确定的数据就需要传入参数 , 函数结果需要参加其他操作就需要返回值。
1.4.函数参数类型
- 位置参数
- 关键字参数
- 默认值参数
- 可变参数(不定长参数)
- 其他(使用不多)
1.4.1.位置参数
位置参数(Positional Arguments):位置参数是按照参数定义的顺序进行传递的参数。调用函数时,需要按照参数定义的顺序依次传递参数值。
1.4.2.关键字参数
关键字参数(Keyword Arguments):关键字参数是通过参数名称进行传递的参数,与位置无关。在函数调用时,可以使用参数名称来指定参数值。
print() 函数源码:
1.4.3.默认值参数
默认参数(Default Arguments):默认参数是在函数定义时为参数指定的默认值。如果在函数调用时没有传递相应参数的值,将使用默认值。
1.4.4.可变参数
可变参数(Variable Arguments):可变参数允许函数接受任意数量的参数。在函数定义时,
- 在参数名前加上 *,表示这是一个可变参数。可变参数将被视为元组(tuple)类型。
- 在参数名前加上 **,表示这是一个可变参数。可变参数将被视为字典(dict)类型。
input_util.py文件:
# 封装 2 个函数# 输入任意正确范围的整数
# 参数:提示语句,不定长参数(约束范围)
# 返回值:需要 def input_int(msg: str = '请输入一个整数:', *args: int) -> int:while 1:n = input(msg)if n.isdigit() if n[0] != '-' else n[1: ].isdigit():n = int(n)if len(args) == 0:return nelif len(args) == 1:if n >= args[0]:return nelse:print(f'请输入大于等于{args[0]}的整数')else:if args[0] <= n <= args[1]:return nelse:print(f'请输入{args[0]} - {args[1]}的整数')else:print('输入的不是数字')pass# 判断整数部分&小数部分是不是数字
def fun(n: str) -> bool:if n.find('.') == -1 and n.isdigit(): # 没有 .return Trueelif n.find('.') == 0: # . 在开头if n[1:].isdigit():return Trueelif n.find('.') == len(n) - 1: # . 在最后if n[: -1].isdigit():return True# 传范围
def fun2(n: float, *args: float) -> float:if len(args) == 0:return nelif len(args) == 1:if n >= args[0]:return nelse:print(f'请输入大于等于{args[0]}的小数')else:if args[0] <= n <= args[1]:return nelse:print(f'请输入{args[0]} - {args[1]}的小数')# 输入任意正确范围的小数
def input_float(msg: str = '请输入一个小数:', *args: float) -> float:while 1:n = input(msg)t = n[1: ] if n[0] == '-' else nif t.count('.') == 1 and t.find('.') > 0 and t.find('.') != len(t) - 1:t1 = t[: t.find('.')]t2 = t[t.find('.') + 1: ]if fun(t1) and fun(t2) and fun2(float(n), *args) is not None:return float(n)elif t.count('.') <= 1 and fun(t) and fun2(float(n), *args) is not None:return float(n)else:print('输入的不是小数')passpass
input_util_test.py文件:
# 使用其他文件的函数必须导入
from input_util import *n = input_int()
print(n)n = input_int('请输入一个正整数:', 0)
print(n)n = input_int('请输入一个 1 - 10 的整数:', 1, 10)
print(n)
# 使用其他文件的函数必须导入
from input_util import *n = input_float()
print(n)
1.5.匿名函数
python 使用 lambda 来创建匿名函数。所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
- lambda 只是一个表达式,函数体比 def 简单很多。
- lambda 的主体是一个表达式,而不是一个代码块。仅仅能在 lambda 表达式中封装有限的逻辑进去。
- lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
- 虽然 lambda 函数看起来只能写一行,却不等同于 C 或 C++ 的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。(匿名函数的作用主要是节省内存,因为没有名字,用完之后在内存中就销毁了。如果有名字,啥时候释放才会销毁。)
sorted() 函数源码:
1.6.参数传递问题
在 Python 中,参数传递可以是通过值传递(传递对象的副本)或引用传递(传递对象的引用,即对象在内存中的地址)进行的,具体取决于传递的对象类型和如何在函数中处理参数。
- 不可变类型:当传递不可变对象(如数字、字符串、元组等)作为参数时,实际上是通过值传递进行的。这意味着函数内部的操作不会影响原始对象。
- 可变类型:当传递可变对象(如列表、字典、集合等)作为参数时,实际上是通过引用传递进行的。这意味着函数内部的操作可能会修改原始对象。
2.冒泡排序
2.1.冒泡排序规则
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
算法描述:
- 比较相邻的元素,如果第一个比第二个大,就交换它们两个;
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
- 针对所有的元素重复以上的步骤,除了最后一个;
- 重复步骤1~3,直到排序完成。
2.2.冒泡排序实现
3.math 模块
math 模块是 Python 的标准库之一,提供了各种数学运算和函数。通过导入 math 模块,可以使用其中的函数和常量来进行数学计算和操作。
4.random 模块
random 是 Python 标准库中的一个模块,提供了生成伪随机数的功能。通过导入 random 模块,可以使用其中的函数来进行随机数生成、随机序列操作等。
5.datetime 模块
datetime 是 Python 标准库中的一个模块,提供了处理日期和时间的功能。通过导入 datetime 模块,可以使用其中的类和函数来操作日期、时间、时间间隔等。
datetime — Basic date and time types — Python 3.13.0 documentation
# 作业1
import math
from input_util import *s = '''200
388
123
456
987
342
767
234
124
345
123
234'''vals = [int(i) for i in s.split('\n')]
print(vals)data = {i + 1 : vals[i] for i in range(len(vals))}
print(data)# 设计函数
# 函数:起止月份
# 返回值:需要
def get_avg_number(start: int, end: int, data: dict = data) -> int: # data: dict = data 第一个 data 是形参,第二个 data 是实参,dict 是字典类型sum_ = 0for i in range(start, end + 1):sum_ += data[i]return math.ceil(sum_ / (end - start + 1)) # return 结束函数并返回结果start = input_int('请输入开始的月份:', 1)
end = input_int('请输入结束的月份:', start, 12)avg_ = get_avg_number(start = start, end = end)
print(avg_)
# input_util# 封装 2 个函数# 输入任意正确范围的整数
# 参数:提示语句,不定长参数(约束范围)
# 返回值:需要 def input_int(msg: str = '请输入一个整数:', *args: int) -> int:while 1:n = input(msg)if n.isdigit() if n[0] != '-' else n[1: ].isdigit():n = int(n)if len(args) == 0:return nelif len(args) == 1:if n >= args[0]:return nelse:print(f'请输入大于等于{args[0]}的整数')else:if args[0] <= n <= args[1]:return nelse:print(f'请输入{args[0]} - {args[1]}的整数')else:print('输入的不是数字')pass# 判断整数部分&小数部分是不是数字
def fun(n: str) -> bool:if n.find('.') == -1 and n.isdigit(): # 没有 .return Trueelif n.find('.') == 0: # . 在开头if n[1:].isdigit():return Trueelif n.find('.') == len(n) - 1: # . 在最后if n[: -1].isdigit():return True# 传范围
def fun2(n: float, *args: float) -> float:if len(args) == 0:return nelif len(args) == 1:if n >= args[0]:return nelse:print(f'请输入大于等于{args[0]}的小数')else:if args[0] <= n <= args[1]:return nelse:print(f'请输入{args[0]} - {args[1]}的小数')# 输入任意正确范围的小数
def input_float(msg: str = '请输入一个小数:', *args: float) -> float:while 1:n = input(msg)t = n[1: ] if n[0] == '-' else nif t.count('.') == 1 and t.find('.') > 0 and t.find('.') != len(t) - 1:t1 = t[: t.find('.')]t2 = t[t.find('.') + 1: ]if fun(t1) and fun(t2) and fun2(float(n), *args) is not None:return float(n)elif t.count('.') <= 1 and fun(t) and fun2(float(n), *args) is not None:return float(n)else:print('输入的不是小数')passpass
6.re 模块
6.1.正则表达式语法
re 是 Python 标准库中的正则表达式模块,提供了对字符串进行正则表达式匹配和操作的功能。通过导入 re 模块,可以使用其中的函数和方法来执行正则表达式的匹配、替换和查找等操作。
6.1.1.字符匹配
6.1.2.数量词匹配
6.1.3.特殊字符匹配
6.1.4.边界字符
6.2.python 正则表达式常用函数
# 联系人 curd 正则优化
# 联系人的信息
# 姓名
# 电话
# 邮箱
# 地址
# 需要把 4 条信息保存在字典中
# key: 姓名
# val: 其他from input_util import input_int
import re# 定义初始化的数据
data = {'泽': ['13012345678', 'qiuzemiao@163.com', '北京市海淀区'], '海': ['13012345679', 'xinhaikuan@163.com', '北京市海淀区'], '杰': ['13012345688', 'songyingjie@163.com', '北京市海淀区'], '帅': ['13012345670', 'liushuai@163.com', '北京市海淀区'],
}def input_phone() -> str:while 1:phone = input('请输入手机号:')if re.match('^(\+86[\- ])?1[3-9][0-9]{9}$', phone):return phoneprint('您输入的手机号有问题')while 1:msg = '1.添加联系人\n'\'2.查看联系人\n'\'3.修改联系人\n'\'4.删除联系人\n'\'0.退出\n'\'请选择:'n = input_int(msg, 0, 4)match n:case 0:breakcase 1:name = input('请输入联系人姓名:')if name not in data:phone = input_phone()email = input('请输入邮箱:')address = input('请输入地址:')data[name] = [phone, email, address]print('添加成功')passelse:print('联系人已存在')passcase 2:print('姓名\t电话\t\t邮箱\t\t\t地址')for k, v in data.items():print(f'{k}\t', '\t'.join(v), sep = '')passcase 3:a = ['电话', '邮箱', '地址']msg = '\n'.join([f'{i + 1}. 修改' + a[i] for i in range(len(a))]) + '\n请选择:'n = input_int(msg, 1, len(a))name = input('请输入姓名:')if name in data:data[name][n - 1] = input_phone() if n == 1 else input('请输入' + a[n - 1] + ': ')print('修改成功')passelse:print('联系人不存在')passcase 4:name = input('请输入姓名:')if name in data:data.pop(name)print('删除成功')passelse:print('联系人不存在')passprint('*' * 60)# 在终端执行,control + c 是退出
# input_util 优化
import re# 封装 2 个函数# 输入任意正确范围的整数
# 参数:提示语句,不定长参数(约束范围)
# 返回值:需要 # 传范围
def fun2(n: float, *args: float | int) -> float | int:if len(args) == 0:return nelif len(args) == 1:if n >= args[0]:return nelse:print(f'请输入大于等于{args[0]}的数字')else:if args[0] <= n <= args[1]:return nelse:print(f'请输入{args[0]} - {args[1]}的数字')def input_int(msg: str = '请输入一个整数:', *args: int) -> int:while 1:n = input(msg)if re.match('^\-?[0-9]+$', n):n = int(n)result = fun2(n, *args)if result is not None:return nelse:print('输入的不是数字')pass# 输入任意正确范围的小数
def input_float(msg: str = '请输入一个小数:', *args: float) -> float:regex1 = '^(\-)?[0-9]*\.[0-9]+$'regex2 = '^(\-)?[0-9]+\.[0-9]*$'while 1:n = input(msg)if re.match(regex1, n) or re.match(regex2, n):n = float(n)result = fun2(n, *args)if result is not None:return nelse:print('输入的不是小数')passpasspass
7.json 模块
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。
Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:
- json.dumps(): 对数据进行编码:python 对象——>json.dumps()——>json 字符串
- json.loads(): 对数据进行解码:json 字符串——>json.loads()——>python 对象
相关文章:
函数与模块
目录 1.函数 1.1.函数概念 1.2.函数定义 1.3.函数分类 1.4.函数参数类型 1.4.1.位置参数 1.4.2.关键字参数 1.4.3.默认值参数 1.4.4.可变参数 1.5.匿名函数 1.6.参数传递问题 2.冒泡排序 2.1.冒泡排序规则 2.2.冒泡排序实现 3.math 模块 4.random 模块 5.date…...
SQL面试题——滴滴SQL面试题 取出累计值与1000差值最小的记录
滴滴SQL面试题 取出累计值与1000差值最小的记录 今天的题目来自滴滴出行 已知有表cost_detail包含id和money两列,id为自增,请累加计算money值,并求出累加值与1000差值最小的记录。 +-----+--------+ | id | money | +-----+--------+ | 1 | 200 | | 2 | 300 …...
使用 Elastic 和 Amazon Bedrock 制作混合地理空间 RAG 应用程序
作者:来自 Elastic Udayasimha Theepireddy (Uday), Srinivas Pendyala, Ayan Ray 借助 Elasticsearch 及其向量数据库,你可以构建可配置的搜索和可信的生成式 AI (GenAI) 体验,这些体验可快速从原型扩展到生产。主要功能包括: 内…...
计算机软著个人申请指南
笔者最近申请了两本软著证书,结合自己的经历介绍一下。 软著登记网址:中国版权业务登记平台 准备工作 你的项目源码源代码统计工具 source-codes-trim:笔者开发自用的源码处理工具vscode插件其他的可以自己在网上搜资源 Word 申请流程 注…...
OmniParser一种用于增强视觉语言模型与用户界面交互效果的技术
OmniParser一种用于增强视觉语言模型与用户界面交互效果的技术 OmniParser的核心功能是将用户界面截图转换为结构化元素,这一过程涉及几个关键步骤和技术要素,解决了视觉语言模型(VLMs)在与用户界面交互时所面临的多种挑战。 1.…...
HBU深度学习作业10-BPTT
1、推导BPTT 2、推导梯度 3、分析其可能存在梯度爆炸的原因并给出解决方法 为了改善循环神经网络的长程依赖问题,一种非常好的解决方案是在公 式(6.50)的基础上引入门控机制来控制信息的累积速度,包括有选择地加入新 的信息,并有选择地遗忘之…...
L2G6000 - MindSearch部署实践
文章目录 MindSearch部署实践部署MindSearch到 hugging face Spaces上启动MindSearch启动后端启动前端 部署到自己的 HuggingFace Spaces上 部署MindSearch streamlit版本到Hugging Face上 MindSearch部署实践 部署MindSearch到 hugging face Spaces上 在Codespaces上选择Bla…...
CentOS 7 上安装 MySQL 8.0.40 (二进制安装)
要在 CentOS 7 上安装 MySQL 8.0.40,按照以下步骤操作: 下载安装包。 https://dev.mysql.com/downloads/mysql/ 下载之前查看系统c版本 解压安装包 首先,解压下载的 .tar.xz 安装包。 cd /path/to/your/downloads tar -xvf mysql-8.0…...
应用案例 | 船舶海洋: 水下无人航行器数字样机功能模型构建
水下无人航行器数字样机功能模型构建 一、项目背景 为响应水下装备系统研制数字化转型及装备系统数字样机建设的需要,以某型号水下无人航行器(Underwater Unmanned Vehicle,UUV)为例,构建UUV数字样机1.0功能模型。针对…...
Chromium CDP 开发(六):注册自己的指令(下)
引言 在这一章节中,我们将详细讲解如何将新定义的 TimerSend 指令和 TimerLog 事件添加到项目 的 inspector_protocol_config.json 文件中,从而使这些功能能够在 CDP(Chrome DevTools Protocol)中被识别并正常使用。 inspector_pr…...
【基础算法总结】哈希表/set/map篇
目录 一,哈希表简介二,算法原理和代码实现1.两数之和349.两个数组的交集面试题01.02.判断是否互为字符重排217.存在重复元素219.存在重复元素II692.前k个高频单词45.字母异位词分组 三,算法总结 一,哈希表简介 哈希思想是算法中一…...
数字逻辑理论题目+知识点复习
昨天考完的数字逻辑理论考试,啊啊啊还有实验,生活不易,且行且珍惜。 请以最大的善意对待生活(,,>᎑<,,)。...
证明网络中的流形成一个凸集
证明网络中的流形成一个凸集 步骤1:定义和符号步骤2:线性组合步骤3:验证容量限制步骤4:验证流量守恒结论示例代码(C语言) 在网络流理论中,一个流 f f f 是定义在网络图的边集上的一种函数&…...
SpringBoot3
1. 配置文件 1. 基本使用 使用 配置文件classpath:application.properties spring.jdbc.drivercom.mysql.cj.jdbc.Driver spring.jdbc.urljdbc:mysql://localhost:3306/batis spring.jdbc.usernameroot spring.jdbc.password123456使用配置文件的值:Value("…...
Linux之线程概念,理解和控制
Linux之线程概念,理解和控制 一.线程1.1线程的概念1.2线程的理解1.3线程的优缺点,异常和用途1.4线程和进程1.5线程的控制1.4.1线程的创建1.4.2线程的终止1.4.3线程的等待1.4.4线程的分离 一.线程 1.1线程的概念 在我们了解了进程的同时我们在学校上课时…...
系统监控——分布式链路追踪系统
摘要 本文深入探讨了分布式链路追踪系统的必要性与实施细节。随着软件架构的复杂化,传统的日志分析方法已不足以应对问题定位的需求。文章首先解释了链路追踪的基本概念,如Trace和Span,并讨论了其基本原理。接着,文章介绍了SkyWa…...
【Leetcode Top 100】146. LRU 缓存
问题背景 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 c a p a c i t y capacity capacity 初始化 LRU 缓存int get(int key) 如果关键字 k e y key key 存在于缓存中&…...
Ubuntu Server 22.04.5 LTS重启后IP被重置问题
Ubuntu Server 22.04.5 LTS重启后IP被重置问题 最近在使用Ubuntu Server 22.04做项目开发测试时发现每次重启和关机后,所设置的静态IP地址都会回复到安装系统时所设置的ip Ubuntu Server 22.04 官网下载地址:Ubuntu官方下载地址 对虚拟机下安装Ubuntu感…...
电机功率、电压与电流的换算方法
在电气工程和相关行业中,电机的功率、电压和电流是三个重要的基本参数。它们之间有着密切的关系,而理解这些关系对于电机的选型、设计和应用至关重要。本文将详细阐述这三者之间的换算关系,以及相关公式的应用。 一、电机功率的定义 电机功…...
【Java】反射简介
框架的核心和架构师的核心 反射和代理是重中之重 反射 反射的作用 在运行的时候由代码获取类的信息 三种获取类信息的方式: 对象.getClass()Class.forName("类的路径")类.class Class :一个用来存储类信息的类 获取类信息是获取的整体的…...
【JAVA】Java第十三节:String类(String相关方法,以及StrinBuftrer , StringBulder相关方法)
本文详细介绍了String类以及常用的String相关方法,以及StrinBuftrer , StringBulder相关方法的使用,建议有印象即可,不需要都记住,使用时去查取即可 一、创建一个String类型的变量 我们平时创建String类型的变量一般是第一种形式…...
电子信息工程自动化 基于单片机的出租车计价器设计
摘 要 出租车作为一种城市中非常重要的公共交通工具,他与人们的生活息息相关。所以我也设计了一款出租车计价器,它采用模块化设计,包含里程测量模块、数据存储模块、按键模块、时钟模块、显示模块、语音播报模块六大主要模块。本设计的出租车…...
CentOS 二进制安装部署MongoDB 4.0
一、安装MongoDB 1. 下载 MongoDB 二进制文件 前往 MongoDB 官方下载页面(https://www.mongodb.com/try/download/community) 选择对应版本的 tar 包。 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.28.tgz 2. 解压并移动至目标目录 解压文件ÿ…...
SQL面试题——京东SQL面试题 合并数据
京东 合并数据 几天的题目来自知名电商平台京东 已知有数据A如下,请分别根据A生成B和C。 数据A +-----+-------+ | id | name | +-----+-------+ | 1 | aa | | 2 | aa | | 3 | aa | | 4 | d | | 5 | c | | 6 | aa | | 7 | aa | | …...
windows安装使用conda
在Windows系统上安装和使用Conda的详细步骤如下: 一、下载Conda安装包 访问Conda的官方网站Anaconda | The Operating System for AI,点击“Downloads”按钮。在下载页面,选择适合您系统的安装包。通常,对于Windows系统…...
C++知识整理day4内存管理——new和delete详解
文章目录 1.C/C内存分布2.C语言中动态内存管理:malloc/realloc/calloc3.C内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型 4.malloc/free和new/delete到底什么区别?4.1 对于自定义类型4.2 对于自定义类型4.3 总结:它们…...
STM32 自学笔记
摘抄于大学期间记录在QQ空间的一篇自学笔记,当前清理空间,本来想直接删除掉的,但是感觉有些舍不得,因此先搬移过来。 RAM vs ROM vs FLASH 2013-09-05记录,ROM和RAM指的都是半导体存储器,ROM是Read Only …...
spring通过RequestContextHolder获取HttpServletRequest对象
1.获取HttpServletRequest对象方法: public static HttpServletRequest getRequest() {ServletRequestAttributes attributes ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes());assert attributes ! null;return attributes.getRequest(…...
【特殊子序列 DP】力扣1137. 第 N 个泰波那契数
泰波那契序列 Tn 定义如下: T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2 给你整数 n,请返回第 n 个泰波那契数 Tn 的值。 示例 1: 输入:n 4 输出:4 解释: T_3 0 1 1 2 T_4 1 …...
tcp连接设置一个超时时间(没在操作系统层面设置)
await asyncio.open_connection(ip, port, limit1024)代码是使用了操作系统的TCP连接,正常TCP连接的时候会有重试机制,当第一个SYN没有回复的时候,会再重试4次,每次间隔1s, 2s,4s, 8s,我觉得太慢了…...
03、Node.js安装及环境配置
1.下载node.js 下载地址:Node.js 2.安装 2.1 自定义安装路径(可以选择默认) 下图根据本身的需要进行,我选择了默认Node.js runtime,然后Next: Node.js runtime :表示运行环境 npm package mana…...
【FAQ】HarmonyOS SDK 闭源开放能力 —Remote Communication Kit
1.问题描述: DynamicDnsRule有没有示例?这个地址是怎么解析出来 https://developer.huawei.com/consumer/cn/doc/harmonyos-references/remote-communication-rcp-0000001770911890#section8160554134811 解决方案: ‘DynamicDnsRule’&a…...
WebStorm快捷键保持跟Idea一致
修改连续行局部多选 在WebStorm中同时按下ctrl alt s; 选择KeyMap 输入Column Selection Mode选择快捷键, 右键选择Add Mouse Shortcut 按下alt 鼠标左键 如果出现占用的情况,直接删除其他使用该快捷键的地方即可; 修改跨行局部多选 在…...
14、鸿蒙学习——管理通知角标
针对未读的通知,系统提供了角标设置接口,将未读通知个数显示在桌面图标的右上角角标上。 通知增加时,角标上显示的未读通知个数需要增加。 通知被查看后,角标上显示的未读通知个数需要减少,没有未读通知时࿰…...
【词向量表示】Word2Vec原理及实现
文章目录 Word2VecHow achieveLookup tableCodingPre-dataingModelNegative sameple Word2Vec 单词与单词之间的向量往往不在同一个向量空间,例如,传统的编码方式:one-hot编码,不同单词[1, 0, 0]和[0, 1, 0]之间的余弦相似度为0。…...
【C++】位图
Ⅰ、bitset的介绍 位图: 就是用 比特位 来标识某种状态,适用于海量数据,数据无重复的场景。通常是用来判断某个数据存不存在的。 位图的接口: 成员函数 功能 set 设置指定位或所有位 reset 清空指定位或所有位 flip …...
性能测试需求分析(超详细总结)
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、客户方提出 客户方能提出明确的性能需求,说明对方很重视性能测试,这样的企业一般是金融、电信、银行、医疗器械等;他们…...
React开发 - 技术总结系列二
HOC 初体验 高阶组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧。HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。 简单点说,就是组件作为参数,返回值也是组件的函数&#x…...
Spring事务实现原理
我们一般将Spring事务使用在数据库操作上面,用来保证数据的一致性和完整性 实现原理: 通过AOP和事务管理器实现的 1.AOP拦截: 拦截Transactional注解的方法调用 2.事务管理器: 负责事务的开启,提交和回滚 3.事务…...
云服务器部署upload-labs-docker(文件上传靶场)环境 以及相关报错问题
环境的搭建 准备:云服务器(本地的linux服务器(版本最好不要是老的不然不兼容docker)) f8x配置docker环境: https://github.com/ffffffff0x/f8x 一键配置 docker拉取file-labs靶场 https://github.com…...
Python进阶编程总结
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
【第 1 章 初识 C 语言】1.8 使用 C 语言的 7 个步骤
目录 1.8 使用 C 语言的 7 个步骤 1.8.1 第 1 步:定义程序的目标 1.8.2 第 2 步:设计程序 1.8.3 第 3 步:编写代码 1.8.4 第 4 步:编译 1.8.5 第 5 步:运行程序 1.8.6 第 6 步:测试和调试程序 1.8.…...
vue3 实现音频转文字组件
使用recorder-core第三方插件实现音频转纯文本的功能。 工具类文件 recoder.ts import Recorder from recorder-core import recorder-core/src/engine/wav import recorder-core/src/extensions/lib.fft.js import recorder-core/src/extensions/frequency.histogram.view i…...
MySQL各种锁详解
什么是锁? 1.1 锁的解释 计算机协调多个进程或线程并发访问某一资源的机制。 1.2 锁的重要性 在数据库中,除传统计算资源(CPU、RAM、I/O等)的争抢,数据也是一种供多用户共享的资源。 如何保证数据并发访问的一致性&…...
前端工程 Node 版本如何选择
1. Node 与 Npm 版本对应 这是一个必知必会的问题,尤其是对于维护那些老掉牙、一坨坨、非常大的有着长期历史的老破大工程。 1.1. package-lock.json 版本 首先你要会看项目的 package-lock.json 文件中的 lockfileVersion 版本号,这对于 NPM 安装来说…...
新增白名单赋予应用安装权限
目录 相关问题 具体实现 相关问题 安装app到/data/分区时,如何在安装阶段就赋予权限,无需请求权限 具体实现 frameworks/base/core/res/res/values/config.xml <!-- For whitelis apk --><string-array translatable"false" nam…...
学习Python的笔记14--迭代器和生成器
1.迭代器(Iterator) 概念: 迭代意味着重复多次,就像循环一样。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。 迭代器只能往前不会后退。 1.iter…...
【Golang】Golang基础语法之面向对象:结构体和方法
面向对象——结构 Go 仅支持封装,不支持继承和多态;继承和多态要做的事情交给接口来完成,即——面向接口编程。Go 只有 struct,没有 class。 定义一个最简单的树节点(treeNode)结构,方法如下&…...
重磅升级:OpenAI o1模型上手实测,从芯片架构分析到象棋残局判断的全能表现
引言 昨日,在圣诞节系列发布会的第一天,OpenAI终于给我们带来了令人振奋的更新,这些更新有望塑造AI互动的未来。备受期待的OpenAI o1正式版的推出,标志着ChatGPT体验的重大进化,宣告了AI驱动应用新时代的开始。o1现已可…...
Pandas处理和分析嵌套JSON数据:从字符串到结构化DataFrame
在数据分析领域,我们经常遇到需要从非结构化数据中提取有用信息的场景。特别是当数据以JSON字符串的形式出现时,如何有效地将其转换为结构化的表格形式,以便进行进一步的分析和处理,成为了一个常见的挑战。本文将通过一个具体的例…...