数据类型转换篇(二)
文章目录
- 7.11 float()
- 7.12 hex()
- 7.13 int()
- 7.14 list()
- 7.15 oct()
- 7.16 ord()
- 7.17 repr()
- 7.18 set()
- 7.19 str()
- 7.20 tuple()
7.11 float()
float() 是 Python 的内置函数,用于将一个数值或数值表示的字符串转换成浮点数(floating point number)。如果转换失败,它会引发一个 ValueError。
以下是一些使用 float() 函数的例子:
# 将整数转换为浮点数
num = 10
float_num = float(num)
print(float_num) # 输出: 10.0# 将字符串转换为浮点数
str_num = "3.14"
float_num = float(str_num)
print(float_num) # 输出: 3.14# 尝试将非数值字符串转换为浮点数会引发 ValueError
try:float_num = float("hello")
except ValueError as e:print(e) # 输出: could not convert string to float: 'hello'# 尝试将空字符串转换为浮点数也会引发 ValueError
try:float_num = float("")
except ValueError as e:print(e) # 输出: could not convert string to float: ''# 尝试将非数字字符组成的字符串转换为浮点数也会失败
try:float_num = float("123abc")
except ValueError as e:print(e) # 输出: could not convert string to float: '123abc'
在上面的例子中,float() 函数成功地将整数和表示浮点数的字符串转换成了浮点数。然而,当尝试将不能表示为浮点数的字符串(如包含非数字字符的字符串或空字符串)转换时,它会抛出 ValueError 异常。
在处理用户输入或从外部数据源获取数据时,通常需要先验证输入是否可以安全地转换为浮点数,以避免程序因异常而中断。这通常通过捕获 ValueError 异常来实现。
7.12 hex()
hex() 是 Python 的内置函数,用于将一个整数转换为其十六进制(hexadecimal)表示的字符串。十六进制是一种基数为 16 的数制系统,它使用 0-9 的十进制数字以及 A-F(或小写 a-f)来表示值。
hex() 函数返回一个字符串,其中包含输入整数的十六进制表示,前缀为 “0x”,以表明它是一个十六进制数。
下面是一些使用 hex() 函数的例子:
# 将整数转换为十六进制字符串
num = 255
hex_num = hex(num)
print(hex_num) # 输出: '0xff'# 负数也被转换为十六进制
neg_num = -42
hex_neg_num = hex(neg_num)
print(hex_neg_num) # 输出: '-0x2a'# 尝试将非整数转换为十六进制会引发 TypeError
try:hex(3.14)
except TypeError as e:print(e) # 输出: 'an integer is required (got type float instead)'
在这个例子中,hex() 函数成功地将整数 255 转换为了十六进制的表示 “0xff”,而负数 -42 也被转换成了 “-0x2a”。尝试将浮点数 3.14 转换为十六进制会引发 TypeError,因为 hex() 函数要求输入必须是一个整数。
在编程中,十六进制通常用于表示内存地址、机器码和其他需要紧凑表示的数字,因为十六进制比二进制更容易阅读和书写。
7.13 int()
int() 是 Python 的内置函数,用于将一个数值或数值表示的字符串转换成整数(integer)。如果转换失败,它会引发一个 ValueError。
以下是一些使用 int() 函数的例子:
# 将浮点数转换为整数(截断小数部分)
num = 3.14
int_num = int(num)
print(int_num) # 输出: 3# 将字符串转换为整数
str_num = "123"
int_num = int(str_num)
print(int_num) # 输出: 123# 字符串表示的负数也可以转换
str_neg_num = "-42"
int_neg_num = int(str_neg_num)
print(int_neg_num) # 输出: -42# 尝试将非数值字符串转换为整数会引发 ValueError
try:int_num = int("hello")
except ValueError as e:print(e) # 输出: invalid literal for int() with base 10: 'hello'# 尝试将空字符串转换为整数也会引发 ValueError
try:int_num = int("")
except ValueError as e:print(e) # 输出: invalid literal for int() with base 10: ''# 使用不同的基数(base)转换字符串为整数
str_num = "1010"
int_num_binary = int(str_num, 2) # 二进制转换为十进制
print(int_num_binary) # 输出: 10str_num = "A"
int_num_hex = int(str_num, 16) # 十六进制转换为十进制
print(int_num_hex) # 输出: 10
在上面的例子中,int() 函数成功地将浮点数和表示整数的字符串转换成了整数。它还允许你指定一个基数(base),用于将字符串表示的数值按照不同的进制转换为十进制整数。如果不指定基数,则默认使用十进制。
当尝试将不能表示为整数的字符串(如包含非数字字符的字符串或空字符串)转换时,int() 函数会抛出 ValueError 异常。
7.14 list()
list() 是 Python 的内置函数,用于将一个可迭代对象(如字符串、元组、集合或其他迭代器)转换成一个列表(list)。如果传递给 list() 的不是一个可迭代对象,它会引发一个 TypeError。
以下是一些使用 list() 函数的例子:
# 将字符串转换为列表,每个字符成为列表的一个元素
str_val = "hello"
list_val = list(str_val)
print(list_val) # 输出: ['h', 'e', 'l', 'l', 'o']# 将元组转换为列表
tuple_val = (1, 2, 3)
list_val = list(tuple_val)
print(list_val) # 输出: [1, 2, 3]# 将集合转换为列表
set_val = {1, 2, 3}
list_val = list(set_val)
print(list_val) # 输出可能是 [1, 2, 3],但顺序可能不同,因为集合是无序的# 将字典转换为列表,结果将只包含字典的键
dict_val = {'a': 1, 'b': 2, 'c': 3}
list_val = list(dict_val)
print(list_val) # 输出: ['a', 'b', 'c']# 尝试将整数转换为列表会引发 TypeError
try:list_val = list(42)
except TypeError as e:print(e) # 输出: 'int' object is not iterable# 使用 range 函数和 list 函数创建一个数字列表
list_val = list(range(5))
print(list_val) # 输出: [0, 1, 2, 3, 4]
在上面的例子中,list() 函数将不同类型的可迭代对象转换成了列表。需要注意的是,字典转换为列表时,结果只包含字典的键,而不包含值。此外,尝试将不可迭代的对象(如整数)转换为列表会引发 TypeError。
list() 函数在需要将其他数据结构转换为列表时非常有用,因为它提供了一个简洁的方法来创建列表。
7.15 oct()
oct() 是 Python 的内置函数,用于将一个整数转换为其八进制(octal)表示的字符串。八进制是一种基数为 8 的数制系统,它使用 0-7 的数字来表示值。
oct() 函数返回一个字符串,其中包含输入整数的八进制表示,前缀为 “0o”,以表明它是一个八进制数。
下面是一些使用 oct() 函数的例子:
# 将整数转换为八进制字符串
num = 255
oct_num = oct(num)
print(oct_num) # 输出: '0o377'# 负数也被转换为八进制
neg_num = -42
oct_neg_num = oct(neg_num)
print(oct_neg_num) # 输出: '-0o52'# 尝试将非整数转换为八进制会引发 TypeError
try:oct(3.14)
except TypeError as e:print(e) # 输出: 'an integer is required (got type float instead)'# 使用 oct() 函数和 int() 函数进行八进制和十进制的转换
oct_str = "0o10"
int_num = int(oct_str, 8)
print(int_num) # 输出: 8# 反向转换回八进制字符串
oct_num_again = oct(int_num)
print(oct_num_again) # 输出: '0o10'
在这个例子中,oct() 函数成功地将整数 255 转换为了八进制的表示 “0o377”,而负数 -42 也被转换成了 “-0o52”。和 hex() 函数一样,oct() 函数也只接受整数作为输入。
八进制在编程中不如十六进制常见,但在某些情况下,如表示系统资源或文件权限时,八进制仍然是有用的。
7.16 ord()
ord() 是 Python 的内置函数,用于返回一个字符的 Unicode 码点(即其在 Unicode 表中的整数值)。这个函数只对单个字符有效,如果传递给它一个字符串(包含多个字符),它会引发 TypeError。
下面是 ord() 函数的一些使用示例:
# 获取字符 'a' 的 Unicode 码点
code_a = ord('a')
print(code_a) # 输出: 97# 获取字符 '中' 的 Unicode 码点(这是一个中文字符)
code_zhong = ord('中')
print(code_zhong) # 输出: 20013# 获取数字字符 '0' 的 Unicode 码点
code_zero = ord('0')
print(code_zero) # 输出: 48# 尝试传递一个字符串给 ord() 会引发 TypeError
try:code_string = ord('hello')
except TypeError as e:print(e) # 输出: 'ord() expected a character, but string of length 5 found'# 使用 ord() 和 chr() 函数进行字符和码点之间的转换
char = chr(97)
print(char) # 输出: 'a'code = ord(char)
print(code) # 输出: 97
在这个例子中,ord(‘a’) 返回 97,因为 a 在 ASCII 表中的位置是 97。对于非 ASCII 字符(如中文字符),ord() 返回的是该字符在 Unicode 表中的位置。
ord() 函数在处理字符编码时非常有用,尤其是在处理涉及多种字符集(如 ASCII、Unicode)的文本时。了解字符的 Unicode 码点可以帮助你理解文本在不同编码方式下的表示。
7.17 repr()
repr() 是 Python 的内置函数,用于返回一个对象的“官方”字符串表示。这个字符串表示通常可以作为一个有效的 Python 表达式,当使用 eval() 函数时,可以重新创建该对象。
repr() 的主要目的是提供一个明确且无歧义的对象的表示形式,以便于调试和记录。
下面是一些使用 repr() 函数的例子:
# 对于简单的数据类型
num = 42
print(repr(num)) # 输出: '42'# 对于字符串
str_val = "hello"
print(repr(str_val)) # 输出: "'hello'"# 对于列表
list_val = [1, 2, 3]
print(repr(list_val)) # 输出: '[1, 2, 3]'# 对于元组
tuple_val = (1, 2, 3)
print(repr(tuple_val)) # 输出: '(1, 2, 3)'# 对于自定义对象
class MyClass:def __repr__(self):return "MyClass object"obj = MyClass()
print(repr(obj)) # 输出: 'MyClass object'# 使用 repr() 和 eval() 重新创建对象
expr = repr(list_val)
new_list = eval(expr)
print(new_list) # 输出: [1, 2, 3]# 注意:eval() 的使用应当谨慎,因为它可以执行任何有效的 Python 代码,
# 这可能导致安全问题。
在这个例子中,repr() 函数返回了每个对象的字符串表示。对于简单数据类型(如整数、字符串),返回的字符串可以直接作为 Python 代码使用。对于复杂的数据类型(如列表、元组),返回的字符串包含数据结构的信息。
此外,对于自定义对象,可以通过定义 repr() 方法来指定其 repr() 的输出。这通常涉及到返回对象的类名和主要属性的字符串表示。
repr() 在调试和日志记录时非常有用,因为它提供了一个明确的方式来表示对象的状态。然而,请注意,repr() 的输出并不总是人类可读的,它主要是为了让 Python 能够理解并重新创建对象。
7.18 set()
set() 是 Python 的内置函数,用于创建一个无序且不包含重复元素的集合(set)。集合是一个数学上的概念,它表示一组对象的集合,其中的对象被称为集合的元素。在 Python 中,集合是一种可变的数据类型,它支持集合运算,如并集、交集、差集等。
下面是 set() 函数的一些使用示例:
# 创建一个空集合
empty_set = set()
print(empty_set) # 输出: set()# 创建一个包含不同元素的集合
simple_set = set([1, 2, 2, 3, 4, 4, 5])
print(simple_set) # 输出: {1, 2, 3, 4, 5}# 集合中的元素是唯一的,所以重复的元素会被自动去除# 使用花括号 {} 也可以创建集合
another_set = {6, 7, 8, 9}
print(another_set) # 输出: {6, 7, 8, 9}# 从其他序列类型创建集合
list_to_set = set([1, 'a', 3.14])
print(list_to_set) # 输出: {1, 'a', 3.14}# 集合支持集合运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}# 并集
union_set = set1.union(set2)
print(union_set) # 输出: {1, 2, 3, 4, 5}# 交集
intersection_set = set1.intersection(set2)
print(intersection_set) # 输出: {3}# 差集
difference_set = set1.difference(set2)
print(difference_set) # 输出: {1, 2}
set() 函数可以接受一个可迭代对象(如列表、元组、字符串等)作为参数,并创建一个包含该可迭代对象中所有元素的集合。如果可迭代对象中包含重复的元素,set() 函数会自动去除它们,因为集合不允许有重复元素。
除了直接调用 set() 函数,还可以使用花括号 {} 来创建集合,但这仅适用于直接列出集合元素的情况,不能用于从其他可迭代对象创建集合。
集合是一种非常有用的数据结构,特别是在需要快速查找、删除或检查元素是否存在的情况下。由于集合是无序的,它们不支持索引操作,但支持成员资格测试(使用 in 关键字)以及集合运算(如并集、交集、差集等)。
7.19 str()
str() 是 Python 的内置函数,用于将给定的对象转换为字符串(string)表示形式。如果对象已经是一个字符串,那么 str() 将返回该对象本身。对于其他对象类型,str() 会尝试返回一个“人类可读”的字符串表示。
以下是 str() 函数的一些使用示例:
# 将整数转换为字符串
num = 123
str_num = str(num)
print(str_num) # 输出: '123'# 将浮点数转换为字符串
float_num = 3.14159
str_float_num = str(float_num)
print(str_float_num) # 输出: '3.14159'# 将布尔值转换为字符串
bool_val = True
str_bool = str(bool_val)
print(str_bool) # 输出: 'True'# 将列表转换为字符串
list_val = [1, 2, 3]
str_list = str(list_val)
print(str_list) # 输出: '[1, 2, 3]'# 将元组转换为字符串
tuple_val = (1, 2, 3)
str_tuple = str(tuple_val)
print(str_tuple) # 输出: '(1, 2, 3)'# 将自定义对象转换为字符串
class MyClass:def __str__(self):return "MyClass object"obj = MyClass()
str_obj = str(obj)
print(str_obj) # 输出: 'MyClass object'# 注意:如果自定义对象没有定义 __str__ 方法,str() 将调用 __repr__ 方法。
对于自定义对象,通常建议定义 str() 方法来提供一个人类可读的字符串表示。如果没有定义 str() 方法,str() 函数将回退到使用 repr() 方法来生成字符串表示,这通常是一个更精确但可能不易读的表示形式。
str() 函数在需要将非字符串对象用于字符串操作(如拼接、格式化)或输出到控制台时非常有用。它允许你以一种统一的方式处理不同类型的对象,并将它们转换为字符串以进行进一步处理。
7.20 tuple()
tuple() 是 Python 的内置函数,用于创建一个元组(tuple)。元组是一种不可变(immutable)的序列类型,它允许你存储一个有序的集合,但这个集合在创建后不能被修改(即不能添加、删除或更改元素)。
下面是 tuple() 函数的一些使用示例:
# 创建一个空元组
empty_tuple = tuple()
print(empty_Tuple) # 输出: ()# 创建一个包含元素的元组
simple_Tuple = tuple([1, 2, 3, 4])
print(simple_Tuple) # 输出: (1, 2, 3, 4)# 直接使用圆括号也可以创建元组
another_Tuple = (1, 2, 3, 4)
print(another_Tuple) # 输出: (1, 2, 3, 4)# 元组可以包含不同类型的元素
mixed_Tuple = (1, 'a', 3.14)
print(mixed_Tuple) # 输出: (1, 'a', 3.14)# 创建一个只有一个元素的元组时,需要加上逗号
singleton_Tuple = (42,)
print(singleton_Tuple) # 输出: (42,)# 尝试修改元组会导致TypeError
# 这是因为元组是不可变的
try:simple_Tuple[0] = 5
except TypeError as e:print(e) # 输出: 'tuple' object does not support item assignment
Tuple() 函数可以接受一个可迭代对象(如列表、字符串等)作为参数,并返回一个包含该可迭代对象中所有元素的元组。如果传入的参数本身就是一个元组,那么它会被原样返回。
由于元组是不可变的,所以它们在用于存储不应更改的数据集时非常有用。元组还常常被用作字典的键和集合的元素,因为它们的不可变性保证了唯一性和不变性。
需要注意的是,尽管元组是不可变的,但它们可以包含可变对象(如列表)作为元素。不过,即使这样,元组本身仍然是不可变的,意味着你不能添加、删除或更改元组中的元素,即使这些元素是可变的。
相关文章:
数据类型转换篇(二)
文章目录 7.11 float()7.12 hex()7.13 int()7.14 list()7.15 oct()7.16 ord()7.17 repr()7.18 set()7.19 str()7.20 tuple() 7.11 float() float() 是 Python 的内置函数,用于将一个数值或数值表示的字符串转换成浮点数(floating point numberÿ…...

新零售SaaS架构:线上商城系统架构设计
零售商家为什么要建设线上商城? 传统的实体门店服务范围有限,只能吸引周边500米以内的消费者。因此,如何拓展服务范围,吸引更多的消费者到店,成为了店家迫切需要解决的问题。 缺乏忠实顾客,客户基础不稳&a…...

Word文档密码设置:Python设置、更改及移除Word文档密码
给Word文档设置打开密码是常见的Word文档加密方式。为Word文档设置打开密码后,在打开该文档时,需要输入密码才能预览及编辑,为Word文档中的信息提供了有力的安全保障。如果我们需要对大量的Word文档进行加密、解密处理,Python是一…...

jar读取目录配置、打包jar后无法获取目录下的配置
jar读取目录配置、打包jar后无法获取目录下的配置 jar读取目录配置、打包jar后无法获取目录下的配置。java打成jar包后获取不到配置文件路径。解决项目打成jar包上线无法读取配置文件。打包jar后无法读取resource下的配置文件 场景 需要读取 src/main/resources/mapper下的所…...

python第三次项目作业
打印课堂上图案 判断一个数是否是质数(素数) 设计一个程序,完成(英雄)商品的购买(界面就是第一天打印的界面) 展示商品信息(折扣)->输入商品价格->输入购买数量->提示付款 输入付款金额->打印购买小票&a…...
架构之安全性维度
流程安全性 安全基本原则:可用性 完整性 机密性 CIA 安全框架:zachman P2DR Sabsa IPDRR IATF 安全评估方法:安全测试: SAST静态测试、 IAST交互测试 安全扫描 危险模型:攻击树分析 DREAD风险评估 渗透测试:…...
odoo字段访问控制
在 Odoo 中,可以通过几种方式实现字段的访问控制,包括通过模型安全规则、记录规则和字段属性来限制字段的访问。 1. 使用模型安全规则 模型安全规则(也称为访问控制列表,ACLs)允许你定义哪些用户组可以对哪些模型进行…...
mysql的基本知识点-操作数据库表
创建数据库: CREATE DATABASE database_name;创建一个名字为database_name的数据库; 删除数据库: DROP DATABASE database_name;删除名字为database_name的数据库; 在执行删除数据库操作前,请确保你确实想要删除数据…...

基于Springboot的疫情物资管理系统(有报告)。Javaee项目,springboot项目。
演示视频: 基于Springboot的疫情物资管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…...
【postgresql 基础入门】表的约束(一)主键与外键,数据的实体完整性与参照完整性,外键引用数据被修改时的动作触发
主键与外键-表的约束(一) 专栏内容: postgresql内核源码分析手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 系列文章…...
centos 7 添加启动脚本
centos 7 java 开机启动 在CentOS 7上配置Java应用程序开机启动,可以通过创建一个systemd服务单元来实现。以下是步骤和示例代码: 创建一个新的systemd服务文件。 sudo vi /etc/systemd/system/your-java-app.service 在该文件中添加以下内容ÿ…...

java入门基础掌握知识
Java基础入门 Java一门 高级 编程语言 Java是 sun 公司研发的,现在属于 oracle 公司 Java之父是 詹姆斯.高斯林 Java主要是来做 企业级 应用开发的 Java的三大技术体系是: 技术体系说明Java SE(Java Standard Edition):标准版Java技术的核心和基础…...

Harbor高可用(nginx和keepalived)
Harbor高可用(nginx和keepalived) 文章目录 Harbor高可用(nginx和keepalived)1.Harbor高可用集群部署架构1.1 主机初始化1.1.1 设置网卡名和ip地址1.1.2 设置主机名1.1.3 配置镜像源1.1.4 关闭防火墙1.1.5 禁用SELinux1.1.6 设置时…...
[数据集][目标检测]牛羊检测数据集VOC+YOLO格式3393张2类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):3393 标注数量(xml文件个数):3393 标注数量(txt文件个数):3393 标注…...

命令提示符——CMD基础操作介绍
💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…...

vue2 自定义 v-model (model选项的使用)
效果预览 model 选项的语法 每个组件上只能有一个 v-model。v-model 默认会占用名为 value 的 prop 和名为 input 的事件,即 model 选项的默认值为 model: {prop: "value",event: "input",},通过修改 model 选项,即可自定义v-model …...

智慧城市中的智慧生活:便捷、舒适与高效
目录 一、智慧城市中的智慧生活概述 二、智慧生活带来的便捷性 1、智慧交通的便捷出行 2、智慧购物的轻松体验 3、智慧政务的一站式服务 三、智慧生活带来的舒适性 1、智慧环境的绿色宜居 2、智慧医疗的健康保障 3、智慧教育的均衡发展 四、智慧生活带来的高效性 1、…...

时代教育期刊投稿发表
《时代教育》是由成都传媒集团主管主办,中华人民共和国新闻出版总署批准国内公开出版发行的专业教育类期刊,主要刊登各类高等院校、职业技术学校、中小学教师及研究生、教育科研工作者的教育实践研究成果;教育教学行业的最新动态;…...
每日OJ题_子数组子串dp⑥_力扣978. 最长湍流子数组
目录 力扣978. 最长湍流子数组 解析代码 力扣978. 最长湍流子数组 978. 最长湍流子数组 难度 中等 给定一个整数数组 arr ,返回 arr 的 最大湍流子数组的长度 。 如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是 湍流子数组 。 更正…...

蓝桥练习题总结(一)字母图形、完美的代价、01串、序列求和
目录 一、字母图形 二、完美的代价 三、01字串 四、序列求和 一、字母图形 问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形,请找出这个图形的规律ÿ…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...

C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...

基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...