Python—基本数据类型

Python是一种解释型语言,非常灵活,并且具有很高的交互性,可以方便的编写、测试和调试代码;本文主要介绍Python的基本数据类型,主要包括整数、浮点数、字符串、布尔、列表、元组、集合和字典。

目前大部分是用Python进行简单的数据处理,发现处理起来数据还是很方面的,毕竟有各种各样的库供我们使用。集成开发环境用的是PyCharm

1. 整数(int)

整数一种基本数据类型,用于表示不带小数点的数字,整数可以是正数、负数或零,在Python中,整数类型(int)没有大小限制,可以表示任意大的整数。

整数类型的常见操作包括加法、减法、乘法、除法和取模等。整数类型还支持位运算操作,例如按位与(&)、按位或(|)、按位异或(^)等。

示例1

# -*- coding: utf-8 -*-x = 10   # 正整数
y = -20  # 负整数
z = 0    # 零# 加法操作
sum_result = x + y
print("sum_result value is: ", sum_result)  # 输出: -10# 减法操作
subtraction_result = x - y
print("subtraction_result value is: ", subtraction_result)  # 输出: 30# 乘法操作
product_result = x * y
print("product_result value is: ", product_result)  # 输出: -200# 除法操作
division_result = y / x
print("division_result value is: ", division_result)  # 输出: -2.0# 取模操作
modulo_result = x % 3
print("modulo_result value is: ", modulo_result)  # 输出: 1

输出

sum_result value is:  -10
subtraction_result value is:  30
product_result value is:  -200
division_result value is:  -2.0
modulo_result value is:  1

示例2

# -*- coding: utf-8 -*-x = 1452875428754287542875428754287542875428754
y = 1452875428754287542875428754287542875428753
result = x - yprint('x type is: ',type(x))
print('result is: ', result)

输出

x type is:  <class 'int'>
result is:  1

这里不讨论针对整数类型(int)没有大小限制的内部存储结构。

2. 浮点数(float)

在Python中,float是一种内置的数据类型,用于表示带有小数点的数字。浮点数可以是正数、负数或零,并可以具有小数点以及指数部分。Python中的浮点数遵循IEEE 754标准。

以下是一些关于Python中float类型的介绍:

  • 浮点数可以使用小数点表示,如3.14或-0.001;
  • 浮点数可以使用科学记数法表示,如2.5e2表示250;
  • 浮点数在Python中是不精确的,由于浮点数的存储方式,对于某些值的计算可能会产生舍入错误;
  • 可以通过内置的float()函数将整数、字符串或其他类型的数据转换为浮点数;
  • 浮点数的取值范围取决于计算机的硬件和支持的浮点数标准;

示例

# -*- coding: utf-8 -*-import math# 浮点数表示
float_num1 = 3.14
float_num2 = -0.001# 科学记数法表示
scientific_notation = 2.5e2  # 表示 250.0# 浮点数转换
integer_to_float = float(5)    # 将整数转换为浮点数,结果为 5.0
string_to_float = float("3.14")    # 将字符串转换为浮点数,结果为 3.14# 不精确的浮点数计算
result = 0.1 + 0.2    # 期望结果为 0.3,但由于浮点数的存储方式,实际结果可能略有偏差print("浮点数示例:")
print("浮点数1:", float_num1)
print("浮点数2:", float_num2)
print("科学记数法表示:", scientific_notation)
print("整数转换为浮点数:", integer_to_float)
print("字符串转换为浮点数:", string_to_float)
print("不精确的浮点数计算结果:", result)

输出

浮点数示例:
浮点数1: 3.14
浮点数2: -0.001
科学记数法表示: 250.0
整数转换为浮点数: 5.0
字符串转换为浮点数: 3.14
不精确的浮点数计算结果: 0.30000000000000004

如何解决 result = 0.1 + 0.2 # 期望结果为 0.3,但由于浮点数的存储方式,实际结果可能略有偏差

处理浮点数精度问题的方法之一是使用 decimal 模块中的 Decimal 类。Decimal 类提供了更精确的浮点数表示和运算,可以减少舍入误差。

示例

# -*- coding: utf-8 -*-import math
from decimal import Decimal# 使用 Decimal 类来表示浮点数
num1 = Decimal('0.1')
num2 = Decimal('0.2')# 进行精确的加法运算
result = num1 + num2print("精确的浮点数计算结果:", result)

输出

精确的浮点数计算结果: 0.3

float类型位数的保留
要保留浮点数的小数点后四位,可以使用格式化字符串或者 round() 函数;

示例

# -*- coding: utf-8 -*-import math
from decimal import Decimal# 方法一
num = 3.141592653589793
formatted_num = "{:.4f}".format(num)
print(type(formatted_num))
print(formatted_num)  # 输出: 3.1416# 方法二
num = 3.141592653589793
rounded_num = round(num, 4)
print(type(rounded_num))
print(rounded_num)  # 输出: 3.1416

输出

<class 'str'>
3.1416<class 'float'>
3.1416

格式化字符串的方法输出的类型为 ‘str’
round() 函数的方法输出的类型为 ‘float’

3. 字符串(str)

Python 中的字符串是不可变的序列,用于存储文本数据,可以使用单引号 (')、双引号 (") 或三引号 (''' 或 """) 来创建字符串。

下面是一些关于 Python 字符串的常见操作和特性:

3.1 创建字符串

可以使用单引号或双引号来创建字符串。如果字符串中包含引号,你可以在引号前加上反斜杠 (\) 进行转义。

str1 = 'Hello, World!'
str2 = "Python Programming"
str3 = "It's a beautiful day."
str4 = "My name is 'Tom'"       # 输出:My name is 'Tom'
str5 = "My name is \"Tom\""     # 输出:My name is "Tom"
str1 = 'apple ' \'banana ' \'orange'str2 = '''
apple
banana
orange
'''print(str1)
print(len(str1))
print(str2)
print(len(str2))
apple banana orange
19apple
banana
orange21

在str1中有2个空格,分别在apple和banana之后;
在str2中有4个空格,分别在apple、banana和orange之后以及apple之前;

3.2 访问字符

可以使用索引来访问字符串中的单个字符,索引从 0 开始,也可以使用切片来访问子字符串。

s = "Python"
print(s[0])     # 输出: P
print(s[-1])    # 输出: n
print(s[1:4])   # 输出: yth

3.3 字符串拼接

可以使用加号 (+) 来拼接字符串。

s1 = "Hello"
s2 = "World"
result = s1 + " " + s2
print(result)   # 输出: Hello World

3.4 字符串格式化

可以使用 % 格式化字符串或者 .format() 方法进行字符串格式化。

name = "Alice"
age = 30
formatted_string = "My name is %s and I am %d years old." % (name, age)
print(formatted_string)#使用 .format() 方法
formatted_string = "My name is {} and I am {} years old.".format(name, age)
print(formatted_string)

3.5 常见字符串方法

Python 提供了许多字符串方法来处理和操作字符串,如 split()、join()、strip()、replace() 等。

s = "   Hello, World!   "
print(s.strip())           # 去除首尾空白字符
print(s.split(","))        # 分割字符串
print(s.replace("Hello", "Hi"))  # 替换字符串中的子串

4. 布尔(bool)

在Python中,bool 类型用于表示逻辑值,即真 (True) 或假 (False)。bool 类型通常用于条件表达式和控制流语句中,例如 if 语句和 while 循环。

以下是关于 Python 中 bool 类型的一些重要特点和示例:

4.1 创建 bool 类型变量

可以直接将 TrueFalse 分配给变量来创建 bool 类型变量。

x = True
y = False

4.2 逻辑运算

Python 提供了常见的逻辑运算符,如 andornot,用于组合和操作 bool 类型的值。

a = True
b = Falseprint(a and b)  # 输出: False
print(a or b)   # 输出: True
print(not a)    # 输出: False

4.3 比较运算符返回 bool 类型

比较运算符(如 ==!=<<=>>=)用于比较两个值,并返回 TrueFalse

x = 5
y = 10print(x < y)    # 输出: True
print(x == y)   # 输出: False

4.4 bool() 函数

使用 bool() 函数将其他数据类型转换为 bool 类型。通常,0、空序列(如空字符串、空列表、空元组)和 None 被视为 False,其他值被视为 True

print(bool(0))        # 输出: False
print(bool(10))       # 输出: True
print(bool([]))       # 输出: False
print(bool([1, 2, 3]))  # 输出: True
  1. bool 类型在条件语句中的使用bool 类型常用于条件语句(如 if 语句)中,根据条件的真假执行不同的代码块。
is_sunny = Trueif is_sunny:print("It's a sunny day!")
else:print("It's not sunny today.")

5. 列表(list)

Python 中的列表是一种有序、可变的数据集合,用于存储多个元素。列表使用方括号 ([]) 表示,其中的元素可以是任意数据类型,并且允许重复元素。

以下是关于 Python 列表的一些常见操作和特性:

5.1 创建列表

使用方括号来创建列表,其中的元素用逗号分隔,列表中的元素类型可以不同。

my_list = [1, 2, 3, 4, 5]
mixed_list = [1, "hello", True, 3.14]
empty_list = []

5.2 访问列表元素

使用索引来访问列表中的单个元素,索引从 0 开始,也可以使用切片来访问子列表。

my_list = [10, 20, 30, 40, 50]
print(my_list[0])    # 输出: 10
print(my_list[-1])   # 输出: 50
print(my_list[1:3])  # 输出: [20, 30]

5.3 列表操作

Python 提供了丰富的列表操作,如添加元素、删除元素、更新元素等。

my_list = [1, 2, 3]# 添加元素
my_list.append(4)        # 在末尾添加元素
print(my_list)           # 输出: [1, 2, 3, 4]# 删除元素
my_list.remove(2)        # 删除指定值的元素
print(my_list)           # 输出: [1, 3, 4]# 更新元素
my_list[0] = 10          # 更新指定位置的元素值
print(my_list)           # 输出: [10, 3, 4]

删除列表中指定位置的元素,可以使用 del 语句或者 pop() 方法。下面是两种方法的示例:

使用 del 语句:

my_list = [1, 2, 3, 4, 5]
del my_list[2]  # 删除索引为 2 的元素
print(my_list)  # 输出: [1, 2, 4, 5]

使用 pop() 方法:

my_list = [1, 2, 3, 4, 5]
removed_element = my_list.pop(2)  # 删除索引为 2 的元素,并返回删除的元素
print("Removed element:", removed_element)  # 输出: Removed element: 3
print(my_list)  # 输出: [1, 2, 4, 5]

使用 del 语句会直接在列表上删除指定位置的元素,而 pop() 方法则会返回被删除的元素,并且原列表会被修改。

5.4 列表方法

Python 提供了许多方法来操作列表,如 append()insert()pop()sort()reverse() 等。

my_list = [3, 1, 2]my_list.append(4)       # 在末尾添加元素
print(my_list)          # 输出: [3, 1, 2, 4]my_list.sort()          # 对列表进行排序
print(my_list)          # 输出: [1, 2, 3, 4]my_list.reverse()       # 反转列表元素
print(my_list)          # 输出: [4, 3, 2, 1]

5.5 列表的拷贝

在 Python 中,拷贝列表时存在浅拷贝和深拷贝两种方式。这两种拷贝方式的区别在于拷贝后的对象是否与原始对象共享内部对象的引用。

浅拷贝(Shallow Copy)

浅拷贝创建了一个新的列表对象,但是该新列表中的元素仍然是原始列表中元素的引用。换句话说,浅拷贝只会拷贝原始列表的一层结构。

你可以使用切片操作符 [:]=copy() 方法或 list() 构造函数来执行浅拷贝。

original_list = [[1, 2, 3], [4, 5, 6]]
shallow_copy = original_list[:]# 或
shallow_copy = original_list# 或
shallow_copy = original_list.copy()# 或
shallow_copy = list(original_list)

对原始列表进行修改,会影响到浅拷贝:

original_list[0][0] = -1
print(shallow_copy)  # 输出: [[-1, 2, 3], [4, 5, 6]]

深拷贝(Deep Copy)

深拷贝创建了一个全新的列表对象,并且递归地拷贝原始列表中的所有内部对象,包括嵌套的列表和其他可变对象。

你可以使用 copy.deepcopy() 函数执行深拷贝。

import copyoriginal_list = [[1, 2, 3], [4, 5, 6]]
deep_copy = copy.deepcopy(original_list)

对原始列表进行修改,不会影响到深拷贝:

original_list[0][0] = -1
print(deep_copy)  # 输出: [[1, 2, 3], [4, 5, 6]]

总之,浅拷贝只会拷贝一层对象结构,而深拷贝会递归地拷贝所有内部对象,使得拷贝后的对象完全独立于原始对象。

问题和思考

示例

original_list = [[1, 2, 3], [4, 5, 6]]
shallow_copy = original_list[:]
original_list[0][0] = -1
print(shallow_copy) original_list = [1, 2, 3]
shallow_copy = original_list[:]
original_list[0] = -1
print(shallow_copy)

输出

[[-1, 2, 3], [4, 5, 6]]
[1, 2, 3]

解析
在第一个示例中,original_list 是一个包含两个列表的列表,即嵌套列表。当你执行 shallow_copy = original_list[:] 时,shallow_copy 被创建为 original_list 的浅拷贝。这意味着 shallow_copy 是一个新的列表对象,但是它的元素仍然是原始列表中元素的引用。因此,修改原始列表中的嵌套列表的元素也会影响到浅拷贝。

在第二个示例中,original_list 是一个简单的列表,包含整数元素。同样地,当你执行 shallow_copy = original_list[:] 时,shallow_copy 被创建为 original_list 的浅拷贝。由于 original_list 中的元素都是不可变的整数,它们在内存中是独立的,因此修改 original_list 中的元素不会影响到浅拷贝。

所以区别在于,对于包含可变对象的列表(如嵌套列表),浅拷贝会共享内部对象的引用,因此修改原始列表中的内部对象会影响到浅拷贝。而对于简单的列表,浅拷贝会创建新的独立对象,因此修改原始列表不会影响到浅拷贝。

6. 元组(tuple)

在 Python 中,元组(tuple)是一种有序、不可变的数据类型,用于存储任意数量的不可变对象。元组可以包含不同类型的元素,例如整数、浮点数、字符串、元组等。

元组的主要特点包括:

6.1 **不可变性(Immutable)

一旦创建,元组的内容就不能被修改、添加或删除。这使得元组在需要确保数据不被修改的情况下非常有用。

my_tuple = (1, 2, 3)
my_tuple[0] = 4  # 这将引发TypeError: 'tuple' object does not support item assignment

6.2 有序性(Ordered)

元组中的元素按照其插入顺序进行排列,并且可以通过索引访问每个元素。

my_tuple = ('apple', 'banana', 'cherry', 'date')# 通过索引访问元组中的元素
print(my_tuple[0])  # 输出: apple
print(my_tuple[2])  # 输出: cherry# 使用负数索引访问元组中的元素(从末尾开始计数)
print(my_tuple[-1])  # 输出: date
print(my_tuple[-2])  # 输出: cherry# 切片操作
print(my_tuple[1:3])  # 输出: ('banana', 'cherry')
print(my_tuple[:2])   # 输出: ('apple', 'banana')
print(my_tuple[2:])   # 输出: ('cherry', 'date')# 反向切片
print(my_tuple[::-1])  # 输出: ('date', 'cherry', 'banana', 'apple')

6.3 可以包含任意类型的对象

元组可以包含各种类型的对象,包括其他元组,甚至是可变对象,如列表。

# 创建元组
my_tuple = (1, 2, 3, 'a', 'b', 'c')
# 访问元组元素
print(my_tuple[0])  # 输出: 1
print(my_tuple[-1])  # 输出: 'c'

6.4 支持元组解包和元组合并

通过元组解包,可以将元组中的元素分配给多个变量。而元组合并则是将多个元组合并为一个更大的元组。


# 元组解包
x, y, z, *rest = my_tuple
print(x, y, z)  # 输出: 1 2 3
print(rest)     # 输出: ['a', 'b', 'c']# 元组合并
tuple1 = (1, 2, 3)
tuple2 = ('a', 'b', 'c')
merged_tuple = tuple1 + tuple2
print(merged_tuple)  # 输出: (1, 2, 3, 'a', 'b', 'c')

元组在很多情况下都比列表更合适,例如用作函数的参数、用于不可变的常量集合等。
元组的不可变性使得它们在某些情况下比列表更安全,因为你可以确信元组中的数据不会被意外地修改。

7. 集合(set)

在Python中,集合(set)是一种无序且不重复的数据集合。集合可以用于存储不同类型的元素,例如整数、浮点数、字符串等。集合的主要特点包括:

7.1 无序性(Unordered)

集合中的元素是无序的,即不保留插入顺序,也不支持通过索引访问元素。

# 创建空集合,不能使用{},{}创建的是字典
empty_set = set()# 创建集合
my_set = {1, 2, 3, 4, 5}# 添加元素
my_set.add(6)
print(my_set)  # 输出: {1, 2, 3, 4, 5, 6}# 删除元素
my_set.remove(3)
print(my_set)  # 输出: {1, 2, 4, 5, 6}# 遍历集合
for element in my_set:print(element)

示例

a = []
b = {}
c = set()
d = dict()print(type(a))
print(type(b))
print(type(c))
print(type(d))

输出

<class 'list'>
<class 'dict'>
<class 'set'>
<class 'dict'>

7.2 唯一性(Uniqueness)

集合中不允许重复的元素,每个元素在集合中只能出现一次。

my_set = {1, 2, 2, 3, 3, 3}
print(my_set)  # 输出: {1, 2, 3}

7.3 可变性(Mutable)

集合是可变的数据类型,可以通过添加、删除元素来修改集合。

my_set = {1, 2, 3}
my_set.add(4)
print(my_set)  # 输出: {1, 2, 3, 4}my_set.remove(2)
print(my_set)  # 输出: {1, 3, 4}

7.4 可迭代性(Iterable)

集合可以被迭代,即可以使用循环来遍历集合中的元素。

my_set = {1, 2, 3}
for element in my_set:print(element)

7.5 支持数学集合操作

集合支持各种数学集合操作,如并集、交集、差集等。

set1 = {1, 2, 3}
set2 = {3, 4, 5}
union = set1 | set2  # 并集
intersection = set1 & set2  # 交集
difference = set1 - set2  # 差集
difference1 = set2 - set1  # 差集
print("Union:", union)  # 输出: Union: {1, 2, 3, 4, 5}
print("Intersection:", intersection)  # 输出: Intersection: {3}
print("Difference:", difference)  # 输出: Difference: {1, 2}
print("Difference1:", difference1)  # 输出: Difference: {4, 5}

集合在Python中常用于去除重复元素、检查成员资格等操作。它们的无序性和唯一性使得它们在处理某些问题时非常有用。

8. 字典(dict)

在Python中,字典(Dictionary)是一种无序的数据类型,用于存储键值对(key-value pairs)。字典的主要特性包括:

8.1 键值对存储

字典中的数据以键值对的形式存储,每个键都唯一,并与一个值相关联。

# 创建字典
my_dict = {'apple': 3, 'banana': 5, 'cherry': 2}# 创建空字典
empty_dict = {}# 或者使用 dict() 函数
empty_dict = dict()

8.2 无序性

字典中的元素是无序的,即不保留插入顺序,也不支持通过索引访问元素。 Python会自动选择最有效的方式来存储和检索字典中的元素,而不考虑插入顺序。

8.3 键的唯一性

字典中的键必须是唯一的,但值可以不唯一。

# 创建一个字典,包含重复的键和值
my_dict = {'a': 1, 'b': 2, 'c': 1, 'd': 2}print(my_dict)  # 输出: {'a': 1, 'b': 2, 'c': 1, 'd': 2}# 尝试添加一个重复的键,会覆盖原有的值
my_dict['c'] = 3
print(my_dict)  # 输出: {'a': 1, 'b': 2, 'c': 3, 'd': 2}# 尝试添加一个不同的键,但值相同
my_dict['e'] = 3
print(my_dict)  # 输出: {'a': 1, 'b': 2, 'c': 3, 'd': 2, 'e': 3}

8.4 可变性

字典是可变的数据类型,可以通过添加、删除键值对来修改字典。


# 添加新键值对
my_dict['date'] = 7
print(my_dict)  # 输出: {'apple': 3, 'banana': 5, 'cherry': 2, 'date': 7}# 修改值
my_dict['banana'] = 6
print(my_dict)  # 输出: {'apple': 3, 'banana': 6, 'cherry': 2, 'date': 7}# 删除键值对
del my_dict['cherry']
print(my_dict)  # 输出: {'apple': 3, 'banana': 6, 'date': 7}# 使用键来访问值
print(my_dict['banana'])  # 输出: 6# 遍历字典的键值对
for key, value in my_dict.items():print(key, "->", value)# 检查键的成员资格
print('banana' in my_dict)  # 输出: True
print('grape' in my_dict)   # 输出: False

字典在Python中常用于映射一组唯一键到其对应的值,它们的灵活性和高效性使得它们在各种情况下都非常有用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/12723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言之旅:文件操作

目录 一什么是文件 1.1程序文件&#xff1a; 1.2数据文件&#xff1a; 1.3文件名 二.文件的打开与关闭 2.1流和标准流 2.2 文件指针 2.3文件的打开与关闭 三.文件的顺序读写 3.1顺序读写函数介绍 fgetc fputc fgets fputs 四.文件的随机读写 4.1 fseek 4.2 ftell…

【案例教程】土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测

查看原文>>>土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测 土地利用/土地覆盖数据是生态、环境和气象等领域众多模型的重要输入参数之一。基于遥感影像解译&#xff0c;可获取历史或当前任何一个区域的土地利用/土地覆盖数据&#xff0c;用于评估区域的生…

FISCO BCOS助力深港跨境数据验证平台上线试运行

日前&#xff0c;深港跨境数据验证平台在深港两地上线试运行。这是在《粤港澳大湾区发展规划纲要》和《全面深化前海深港现代服务业合作区改革开放方案》等政策指引下&#xff0c;深港两地加快发展新质生产力、扎实推进数字经济高质量发展的又一创新实践。 深港跨境数据验证平…

Rust语言内部运行原理介绍

Rust语言因其独特的内存管理特性和安全性而日益受到程序员的青睐。本文旨在为初学者提供一个关于Rust的基础入门课程和对其内部运行原理的简介&#xff0c;帮助你理解这门语言的核心优势和设计理念。 1. Rust入门课程 基础知识 Rust语言的学习起点应从其基本语法开始。Rust的…

I2C总线协议

目录 一、前言 二、概念 三、I2C总线 1、主从结构 2、两线 3、半双工 4、上拉电阻 5、高阻态 四、时序图 1、起止信号 2、数据传输 3、应答信号 五、数据传送 1、传送格式 2、读写数据 六、时钟同步与仲裁 1、时钟同步 2、仲裁 七、时钟拉伸 八、总线速率 一、…

Kotlin核心编程知识点-01-基础语法

文章目录 0.前言1.不一样的类型声明1.1.增强的类型推导1.2.声明函数返回值类型1.3.是否需要显示声明类型&#xff1f; 2.val和var的使用规则2.1.val的含义&#xff1a;引用不可变 3.高阶函数和Lambda3.1.抽象和高阶函数3.2.函数作为参数的需求3.3.函数的类型3.4.方法和成员引用…

项目实施奖励方式调查

此调查主要了解各企业的项目激励方式&#xff08;只有3个问题&#xff09;。 相应的调查结果也将定时公布&#xff0c;希望对企业项目管理、企业激励方面有一定帮助。 感谢大家的支持。 链接地址为&#xff1a;项目实施奖励方式调查

数据的可计算性

目的&#xff1a;更容易被计算机程序分析和处理。所以涉及到数据准备、清洗、整理、格式化等过程。 1、标准化数据格式&#xff1a;所有数据遵循统一的格式和标准。比如日期和时间以标准格式存储。 2、清洗数据&#xff1a;移除或修正 错误数据和异常值&#xff0c;包括去除重…

Flutter 依据JSON数据自动生成实体类

json自动化生成工具 点击这里可以跳转 页面是这样的 然后在左边输入你的json数据&#xff0c;它会自动生成对应的实体类 生成的实体类是如下&#xff1a; import package:json_annotation/json_annotation.dart; part merch_region.g.dart;JsonSerializable()class MerchReg…

国网645协议报文解析软件

本文分享一款支持国网DL645-2007规约的报文解析软件&#xff0c; 链接: https://pan.baidu.com/s/1ngbBG-yL8ucRWLDflqzEnQ 提取码: y1de 主界面如下图所示&#xff1a; 本解析软件同时内嵌规约文档&#xff0c;支持一键打开文档&#xff0c;功能如下&#xff1a; 同时支持模…

堆的数组实现

前言 本次博客来讲解一下堆的数组实现&#xff0c;好吧还是会结合图例&#xff0c;让大家理解 堆的定义 什么是堆&#xff1f; 堆是一颗完全二叉树。它的性质是父节点一定大于或者一定小于子节点 每一个结点都要满足这个性质就是堆 堆的特性是堆顶的数据一定是最大或最小…

ROS仿真多点导航

仿真环境启动&#xff1a; 1、启动并进入到相应环境&#xff1a; roscarroscar-virtual-machine:~/artcar_simulation$ 启动gazebo环境&#xff1a; roslaunch artcar_gazebo artcar_gazebo.launch 启动move_base&#xff1a; roslaunch artcar_nav artcar_move_base.launc…

3D数字化技术如何改变汽车行业?

近年来&#xff0c;新能源汽车行业加速发展&#xff0c;新车型密集发布&#xff0c;汽车保有量和车龄的增加&#xff0c;也同时点燃了汽车后市场的增长引擎。对于车企而言&#xff0c;如何全方面优化汽车从研发、生产、售后到营销的各个环节&#xff0c;以便适应快速变化的市场…

中文域名和英文域名有什么区别?中文域名有哪些优势?

作为企业网站的重要标识&#xff0c;域名在数字化时代扮演着重要角色。而随着中国互联网的快速发展&#xff0c;中文域名也逐渐崭露头角&#xff0c;受到国内企业和用户的关注。本文国科云作为中国科学院控股有限公司旗下的域名管理品牌&#xff0c;简单为大家介绍下中文域名和…

使用make_blobs生成数据并使用KNN机器学习算法进行分类和预测以及可视化

生成数据 使用make_blobs生成数据并使用matplotlib进行可视化 完整代码&#xff1a; from sklearn.datasets import make_blobs # KNN 分类器 from sklearn.neighbors import KNeighborsClassifier # 画图工具 import matplotlib.pyplot as plt # 数据集拆分工具 from sklea…

【代码随想录】链表

2024.5.11-2024.5.15 移除链表元素 #判断头节点是否空&#xff0c;#并且头节点为要删除的值&#xff0c;头节点向后移while head and head.valval:headhead.nextif not head: returncurhead#当前指针指向的下一个元素为val,当前指针指向下一个的下一个#否则&#xff0c;当前指…

Win7远程桌面连接不上:原因及专业解决方案

Win7远程桌面连接作为一种方便的工具&#xff0c;使得用户可以从一台计算机远程访问和操作另一台计算机。然而&#xff0c;有时用户可能会遇到Win7远程桌面连接不上的情况&#xff0c;这可能是由于多种原因导致的。 一、原因分析 1. 网络设置问题&#xff1a;确保计算机与远程…

Java 语言的特点分析及应用

Java语言自问世以来&#xff0c;因其独特的设计理念和广泛的应用领域&#xff0c;成为了编程语言中的一颗璀璨明星。以下是对Java语言特点的详细分析及其实际应用场景&#xff0c;希望能帮助面试者更好地理解和掌握Java的优势。 1. 简单易学 Java的语法简单&#xff0c;类似于…

可用在vue自动导入的插件unplugin-auto-import

在大多数vue3开发中&#xff0c;基本所有页面都会引用vue3 componsition api&#xff0c;如下代码 想这种vue3 架构中自带的api&#xff0c;如果在全局配置一下的话&#xff0c;就可以减少一部分代码量&#xff0c;只是在代码编译的时候&#xff0c;会添加相应的引用&#xff…

【Stable Diffusion】 训练方法篇

一、四种模型训练方法简介 Stable Diffusion 有四种训练模型的方法&#xff1a;Textual Inversion、Hypernetwork、LoRA 和 Dreambooth 。它们的训练方法存在一定差异&#xff0c;我们可以通过下面对比来评估使用哪种训练方式最适合你的项目。 如果你知道模型中已经可以产生你…