【Python pro】基本数据类型
一、数字类型
1.1 数字类型的组成
1.1.1 整数
(1)十进制,二进制0b,八进制0o,十六进制0x
print(16 == 0b10000 == 0o20 == 0x10)
# 输出:True
(2)十进制转其他进制
a = bin(16)
b = oct(16)
c = hex(16)
print(a, b, c)
# 输出:0b10000 0o20 0x10
注意:上述输出结果为字符串类型
print(a == b == c)
# 输出:False
print(type(a), type(b), type(c))
# 输出:<class 'str'> <class 'str'> <class 'str'>
(3)其他进制转十进制
l = int(a, 2)
m = int(b, 8)
n = int(c, 16)
print(l, m, n)
# 输出:16 16 16
1.1.2 浮点数
(1)不确定小数问题
print((0.1 + 0.2) == 0.3)
# 输出:False
print(0.1 + 0.2)
# 输出:0.30000000000000004
(2)计算机采用二进制小数表示浮点数的小数部分
注意:
- 部分小数不能用二进制小数完全表示
- 通常情况,不影响计算精度
- 四舍五入可获得精确解
a = 0.1 + 0.7
print(a)
# 输出:0.7999999999999999b = round(a, 1)
print(b)
# 输出:0.8
print(b == 0.8)
# 输出:True
1.1.3 复数
(1)j or J
print(3+4j)
# 输出:(3+4j)
print(3+4J)
# 输出:(3+4j)
(2)若虚部系数为1,则需要显式写出
print(3+J)
# 输出:NameError: name 'J' is not defined
print(3+1j)
# 输出:(3+1j)
1.2 数字类型的运算操作符
1.2.1 加减乘除
print((1+2-3*4) / 5)
# 输出:-1.8
1.2.2 取反
x = 3
print(-x)
# 输出:-3
1.2.3 乘方
print(2**3)
# 输出:8
1.2.4 整数商和模
print(11 // 2)
# 输出:5
print(11 % 2)
# 输出:2
注意:
- 整数和浮点数的运算结果为浮点数
- 除法的运算结果为浮点数
print(1+2.5)
# 输出:3.5
print(5/2)
# 输出:2.5
print(4.0/2)
# 输出:2.0
1.3 整数类型的运算操作函数
1.3.1 绝对值——abs()
print(abs(-3))
# 输出:3
print(abs(3+4j)) # 对复数,执行求模运算
# 输出:5.0
1.3.2 幂次方——pow(x, n)
print(pow(2, 3)) # 执行 2**3
# 输出:8
print(pow(2, 3, 4)) # 执行 2^3%4
# 输出:0
1.3.3 四舍五入——round(x, n)
a = 314.159
print(round(a)) # 默认整数
# 输出:314
print(round(a, 2)) # 四舍五入保留两位小数
# 输出:314.16
print(round(a, 8)) # 位数不足时,无需补足
# 输出:314.159
print(round(a, -2)) # 四舍五入保留100的倍数
# 输出:300.0
1.3.4 整数商和模——divmod(x, y)
print(divmod(9, 2))
# 输出:(4, 1)
# 返回二元元组:(9//2, 9%2)
1.3.5 序列最大值/最小值——max(), min()
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print("max:", max(lst))
# 输出:max: 10
print("min:", min(lst))
# 输出:min: 1
1.3.6 求和——sum()
print(sum((1, 3, 5, 7, 9)))
# 输出:25
1.3.7 科学计算库
(1)math
import math# 1.幂运算
print("2 的 3 次方:", math.pow(2, 3))
# 输出:2 的 3 次方: 8.0# --------------------------------------------------# 2.对数运算
print("log(100, 10):", math.log(100, 10)) # 以 10 为底 100 的对数
# 输出:log(100, 10): 2.0
print("自然对数 log(e):", math.log(math.e)) # 自然对数
# 输出:自然对数 log(e): 1.0# --------------------------------------------------# 3.平方根
print("sqrt(16):", math.sqrt(16))
# 输出:sqrt(16): 4.0# --------------------------------------------------# 4.角度转弧度
angle_in_degrees = 45
angle_in_radians = math.radians(angle_in_degrees)# --------------------------------------------------# 5.正弦、余弦、正切
print(f"{angle_in_degrees} 度的正弦值: {math.sin(angle_in_radians)}")
# 输出:45 度的正弦值: 0.7071067811865476
print(f"{angle_in_degrees} 度的余弦值: {math.cos(angle_in_radians)}")
# 输出:45 度的余弦值: 0.7071067811865476
print(f"{angle_in_degrees} 度的正切值: {math.tan(angle_in_radians)}")
# 输出:45 度的正切值: 0.9999999999999999# --------------------------------------------------# 6.反三角函数
print("arcsin(0.7071):", math.degrees(math.asin(0.7071))) # 结果转换为角度
# 输出:arcsin(0.7071): 44.99945053347443# --------------------------------------------------# 7.双曲正弦、双曲余弦、双曲正切
x = 1
print(f"x={x} 的双曲正弦值: {math.sinh(x)}")
# 输出:x=1 的双曲正弦值: 1.1752011936438014
print(f"x={x} 的双曲余弦值: {math.cosh(x)}")
# 输出:x=1 的双曲余弦值: 1.5430806348152437
print(f"x={x} 的双曲正切值: {math.tanh(x)}")
# 输出:x=1 的双曲正切值: 0.7615941559557649# --------------------------------------------------# 8.阶乘
n = 5
print(f"{n} 的阶乘: {math.factorial(n)}")
# 输出:5 的阶乘: 120# --------------------------------------------------# 9.伽马函数
print("gamma(3):", math.gamma(3)) # gamma(n) = (n-1)!
# 输出:gamma(3): 2.0# --------------------------------------------------# 10.常数
print("π:", math.pi)
# 输出:π: 3.141592653589793
print("e:", math.e)
# 输出:e: 2.718281828459045
(2)scipy
- Optimize (优化):提供了多种优化算法,包括最小化(最大化)函数、曲线拟合等
from scipy import optimize
import numpy as npdef f(x):return x**2 + 10 * np.sin(x)# 使用 minimize 方法寻找函数最小值
result = optimize.minimize(f, 0)
print("找到的最小值点:", result.x)
# 输出:找到的最小值点: [-1.30644012]
- Integrate (积分和微分方程求解):提供了多种数值积分方法以及 ODE 求解器
from scipy import integrate# 定义被积函数
def integrand(x):return np.exp(-x**2)# 计算积分
result, _ = integrate.quad(integrand, -np.inf, np.inf)
print("积分结果:", result)
# 输出:积分结果: 1.7724538509055159
- Linalg (线性代数):扩展了 NumPy 的线性代数能力,提供了更多高级功能
from scipy import linalg
import numpy as np# 创建两个随机矩阵
A = np.random.randn(3, 3)
B = np.random.randn(3, 1)# 解线性方程 Ax = B
solution = linalg.solve(A, B)
print("Ax=B 的解:", solution)
# 输出:Ax=B 的解: [[-0.07803842]
# [ 0.23422888]
# [ 0.19536865]
# ]
- Signal (信号处理):提供了一系列工具用于信号处理,如滤波、卷积等
from scipy import signal
import numpy as np
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei'] # 使用黑体或其他中文字体
plt.rcParams['axes.unicode_minus'] = False # 解决负号 '-' 显示为方块的问题# 创建一个简单的正弦波信号
t = np.linspace(0, 1, 500)
x = np.sin(2 * np.pi * 3 * t) + 0.5 * np.random.randn(t.size)# 设计一个低通滤波器并应用到信号上
b, a = signal.butter(3, 0.05)
filtered_x = signal.filtfilt(b, a, x)plt.plot(t, x, label='原始信号')
plt.plot(t, filtered_x, label='过滤后的信号')
plt.legend()
plt.show()
结果:
- Stats (统计分布和函数):提供了广泛的统计分布模型和统计测试
from scipy import stats
import numpy as np# 生成一组随机数据
data = np.random.normal(loc=0, scale=1, size=1000)# 计算描述性统计量
mean = np.mean(data)
median = np.median(data)
mode = stats.mode(data) # 需要注意的是,对于连续分布的数据,模式可能不适用或需要进行分箱处理
std_dev = np.std(data)print(f"Mean: {mean}, Median: {median}, Standard Deviation: {std_dev}")
# 输出:Mean: 0.035383601211682034, Median: 0.06455716819180869, Standard Deviation: 0.9858768770120637
(3)numpy
import numpy as np# 1.创建数组
# 从列表创建一维数组
a = np.array([1, 2, 3])
print("一维数组:", a)
# 输出:一维数组: [1 2 3]# 从列表创建二维数组
b = np.array([[1, 2], [3, 4]])
print("二维数组:\n", b)
# 输出:二维数组:
# [[1 2]
# [3 4]]# 使用内置函数创建特定形状的数组
c = np.zeros((3, 3)) # 创建一个3x3的零矩阵
print("零矩阵:\n", c)
# 输出:零矩阵:
# [[0. 0. 0.]
# [0. 0. 0.]
# [0. 0. 0.]]# --------------------------------------------------# 2.数组操作
# 数组的形状和大小
print("数组b的形状:", b.shape)
# 输出:数组b的形状: (2, 2)
print("数组b的维度:", b.ndim)
# 输出:数组b的维度: 2
print("数组b的元素总数:", b.size)
# 输出:数组b的元素总数: 4# 数组重塑
d = b.reshape(1, 4) # 将二维数组b重塑为1行4列的一维数组
print("重塑后的数组:\n", d)
# 输出:重塑后的数组:
# [[1 2 3 4]]# --------------------------------------------------# 3.广播机制
e = np.array([1, 2, 3])
f = np.array([2, 2, 2])# 利用广播机制进行加法运算
g = e + f
print("广播加法结果:", g)
# 输出:广播加法结果: [3 4 5]# 标量与数组的加法
h = e + 2
print("标量加法结果:", h)
# 输出:标量加法结果: [3 4 5]# --------------------------------------------------# 4.线性代数运算
i = np.array([[1, 2], [3, 4]])
j = np.array([[5, 6], [7, 8]])# 矩阵乘法
k = np.dot(i, j)
print("矩阵乘法结果:\n", k)
# 输出:矩阵乘法结果:
# [[19 22]
# [43 50]]# 计算行列式
det_i = np.linalg.det(i)
print("行列式i:", det_i)
# 输出:行列式i: -2.0000000000000004# --------------------------------------------------# 5.傅里叶变换
signal = np.array([0, 1, 0, 1])
fourier = np.fft.fft(signal)
print("傅里叶变换结果:", fourier)
# 输出:傅里叶变换结果: [ 2.+0.j 0.+0.j -2.+0.j 0.+0.j]# --------------------------------------------------# 6.随机数生成
# 生成标准正态分布的随机数
random_numbers = np.random.randn(5)
print("随机数:", random_numbers)
# 输出:随机数: [ 0.91515599 -0.74805686 0.90227149 0.2376813 2.70840746]# 生成指定范围内的整数随机数
random_integers = np.random.randint(0, 10, size=5)
print("整数随机数:", random_integers)
# 输出:整数随机数: [7 0 4 7 7]
二、字符串类型
2.1 字符串的表达
print("hello", 'world')
# 输出:hello world
2.1.1 双中有单
print("I'm a test")
# 输出:I'm a test
2.1.2 单中有双
print('I am a "test"')
# 输出:I am a "test"
2.1.3 双中有双/单中有单
print('I\'m a test')
# 输出:I'm a test
2.1.4 转移符用来换行继续输入
st = "py\
thon"
print(st)
# 输出:python
2.2 字符串的性质
2.2.1 字符串的索引——变量名[位置编号]
s = "my name is <NAME>"# 正向索引
print(s[0])
# 输出:m
print(s[3])
# 输出:n
print(s[9])
# 输出:s# 反向索引
print(s[-1])
# 输出:>
print(s[-2])
# 输出:E
print(s[-6])
# 输出:<
2.2.2 字符串的切片——变量名[开始位置:结束位置:切片间隔]
print(s[0:6])
# 输出:my nam
print(s[0:6:2])
# 输出:m a
print(s[:6]) # 开始位置为0时,可省略
# 输出:my nam
print(s[:]) # 结束位置省略时,则表示取到最后一个字符
# 输出:my name is <NAME>
print(s[-3:]) # 也可以使用反向索引
# 输出:ME>
print(s[-1:-9:-1]) # 反向切片
# 输出:>EMAN< s
2.3 字符串的操作符
2.3.1 字符串的拼接
a = "my name "
b = "is Tom"
print(a + b)
# 输出:my name is Tom
2.3.2 字符串的成倍复制
c = a+b
print(c)
# 输出:my name is Tom
print(c*3)
# 输出:my name is Tommy name is Tommy name is Tom
2.3.3 字符串的成员运算
- 子集 in 全集——任何一个连续的切片都是原字符串的子集
singers = "Tom, Tina, Time"
print("Tom" in singers)
# 输出:True
- for 字符 in 字符串——遍历字符串
for s in "python":print(s)
# 输出:p
# y
# t
# h
# o
# n
2.4 字符串的处理函数
2.4.1 字符串的长度——len()
s = "python"
print(len(s))
# 输出:6
2.4.2 字符编码
- 定义:将字符(字母、数字、符号等)映射为计算机可以处理的二进制数
- 特点:
(1)每个单一字符对应一个唯一的不可重复的二进制编码
(2)Python中使用Unicode编码
(1)字符转Unicode码——ord(字符)
print(ord("1"))
# 输出:49
print(ord("a"))
# 输出:97
print(ord("."))
# 输出:46
print(ord("中"))
# 输出:20013
(2)Unicode码转字符——chr(Unicode码)
print(chr(1000))
# 输出:8
print(chr(1010))
# 输出:c
print(chr(12345))
# 输出:〹
2.5 字符串的处理方法
特点:
1. 返回的结果为一个列表
2. 原字符串不变
2.5.1 字符串的分割——字符串.split(分割字符)
st = "my name is Tom"
st_lst = st.split(" ")
print(st)
# 输出:my name is Tom
print(st_lst)
# 输出:['my', 'name', 'is', 'Tom']
2.5.2 字符串的聚合——“聚合字符”.join(可迭代数据类型)
可迭代类型:
1. 列表(list):有序的、可变的数据集合
2. 元组(tuple):有序的、不可变的数据集合
3. 字符串(str):字符的有序集合,也是不可变的
4. 字典(dict):键值对的无序集合,迭代时默认遍历键
5. 集合(set):无序且不重复元素的集合
words = ["Hello", "world", "from", "Python"]
sentence = " ".join(words)
print(sentence)
# 输出: Hello world from Pythonnumbers = [1, 2, 3]
joined_numbers = " - ".join(str(n) for n in numbers)
print(joined_numbers)
# 输出: 1 - 2 - 3
2.5.3 删除两端待定字符——字符串.strip(删除字符)
s = "------my name is Tom------"
print(s.strip("-"))
# 输出:my name is Tom
print(s.rstrip("-"))
# 输出:------my name is Tom
print(s.lstrip("-"))
# 输出:my name is Tom------
print(s)
# 输出:------my name is Tom------st = " my name is Tom "
print(st.strip(" ")) # strip()从两侧开始搜索,遇到指定字符则删除,遇到非指定字符则停止
# 输出:my name is Tom
2.5.4 字符串的替换——字符串.replace(“被替换”, “替换成”)
s = "my name is Tom"
s1 = s.replace("Tom", "Time")
print(s1)
# 输出:my name is Time
2.5.5 字符串的字母大小写
s = "pyThon"
print(s.upper()) # 全部大写
# 输出:PYTHON
print(s.lower()) # 全部小写
# 输出:python
print(s.capitalize()) # 字符串首字母大写
# 输出:Python
print(s.title()) # 单词首字母大写
# 输出:Python
print(s.swapcase()) # 大小写转写
# 输出:PYtHON
三、布尔类型
3.1 作为逻辑运算的结果
a = 3
print(a > 1)
# 输出:True
print(a == 3)
# 输出:True
print(a < 2)
# 输出:False
print(any([False, 1, 0, None]))
# 输出:True
print(all([False, 1, 0, None]))
# 输出:False
3.2 作为指示条件
m = 3
while True:n = eval(input("请输入一个正整数:"))if m == n:print("猜对啦!")elif m > n:print("猜小了。")else:print("猜大了。")
3.3 作为掩码
import numpy as np
x = np.array([[1, 3, 2, 5, 7]])
print(x > 3)
# 输出:[[False False False True True]]
print(x[x > 3])
# 输出:[5 7]
四、类型判别与转换
4.1 类型判别
4.1.1 type(变量)
age = 20
print(type(age))
# 输出:<class 'int'>
4.1.2 isinstance(变量, 预测类型)
print(isinstance(age, int))
# 输出:True
print(isinstance(age, float))
# 输出:False
print(isinstance(age, object))
# 输出:True
4.1.3 字符串的检查方法
(1)数字组成——字符串.isdigit()
# 数字组成--字符串.isdigit()
age = "20"
age1 = "18 岁"
print(age.isdigit())
# 输出:True
print(age1.isdigit())
# 输出:False
(2)字母组成——字符串.isalpha()
name = "Tom"
print(age.isalpha())
# 输出:False
print(name.isalpha())
# 输出:True
(3)数字和字母组成——字符串.isalnum()
print("Tom2025".isalnum()) # 一般用于判断用户名是否合法
# 输出:True
4.2 类型转换
4.2.1 数字转字符串——str(数字类型)
age = 20
print("my age is " + str(age))
# 输出:my age is 20
4.2.2 字符串转数字
s1 = "20"
s2 = "21.5"
print(int(s1))
# 输出:20
print(float(s2))
# 输出:21.5
print(eval(s1))
# 输出:20
print(eval(s2))
# 输出:21.5
微语录:书上说,天下没有不散的宴席。不要怕,书上还说了,人生何处不相逢。
相关文章:
【Python pro】基本数据类型
一、数字类型 1.1 数字类型的组成 1.1.1 整数 (1)十进制,二进制0b,八进制0o,十六进制0x print(16 0b10000 0o20 0x10) # 输出:True(2)十进制转其他进制 a bin(16) b oct(1…...
sql server查询IO消耗大的排查sql诊断语句
原文链接: sql server查询IO消耗大的排查sql诊断语句-S3软件[code]select top 50 (total_logical_reads/execution_count) as avg_logical_reads , (total_logical_writes/execution_count) as avg_logical_writes , (tota ... https://blog.s3.sh.cn/thread-120-1…...
Spring Boot 自动装配原理深度剖析
一、引言 在 Java 开发领域,Spring 框架无疑是中流砥柱。而 Spring Boot 的出现,更是极大地简化了 Spring 应用的搭建和开发过程。其中,自动装配原理是 Spring Boot 的核心亮点之一,它让开发者无需手动编写大量繁琐的配置代码&am…...
kubernetes源码分析 kubelet
简介 从官方的架构图中很容易就能找到 kubelet 执行 kubelet -h 看到 kubelet 的功能介绍: kubelet 是每个 Node 节点上都运行的主要“节点代理”。使用如下的一个向 apiserver 注册 Node 节点:主机的 hostname;覆盖 host 的参数࿱…...
Golang学习笔记_33——桥接模式
Golang学习笔记_30——建造者模式 Golang学习笔记_31——原型模式 Golang学习笔记_32——适配器模式 文章目录 桥接模式详解一、桥接模式核心概念1. 定义2. 解决的问题3. 核心角色4. 类图 二、桥接模式的特点三、适用场景1. 多维度变化2. 跨平台开发3. 动态切换实现 四、与其他…...
使用EasyExcel和多线程实现高效数据导出
使用EasyExcel和多线程实现高效数据导出 1. 概述 在企业级应用中,数据导出是一个常见的需求。为了提高导出效率,尤其是在处理大量数据时,我们可以结合使用EasyExcel库和多线程技术。本文将详细介绍如何通过EasyExcel和多线程技术实现高…...
告别冷冰冰:如何训练AI写出温暖人心的广告文案
朋友们,你们是不是也好奇过,如果让AI来写广告文案,会是什么效果? 是冷冰冰的数据堆砌,还是也能玩出创意和温度? 别担心,今天我就来给你揭秘,怎么调教AI,让它写出的广告…...
【js逆向_入门】图灵爬虫练习平台 第四题
(base64解码)地址:aHR0cHM6Ly9zdHUudHVsaW5ncHl0b24uY24vcHJvYmxlbS1kZXRhaWwvNC8 请求接口带有加密参数: 全局搜索Sign,找到参数生成位置 一目了然,知道参数是怎么构造生成的 调试代码 测试验证思路是否正确 时间: …...
Mybatis后端数据库查询多对多查询解决方案
问题场景: 我开发的是一个论文选择系统。 后端用一个论文表paper来存储论文信息。 论文信息中,包含前置课程,也就是你需要修过这些课程才能选择这个论文。 而一个论文对应的课程有很多个。 这样就造成了一个数据库存储的问题。一个paper…...
记一次 Git Fetch 后切换分支为空的情况
Git Fetch 后切换分支为空的情况 在使用 Git 时,我遇到这样的情况:执行 git fetch 后切换分支,发现工作目录是空的,没有任何文件,所以插眼记录一下。 原因分析 git fetch 的作用:git fetch 只会从远程仓库…...
【MySQL排错 】mysql: command not found 数据库安装后无法加载的解决办法
【MySQL排错 】mysql: command not found 数据库安装后无法加载的解决办法 A Solution to Solve Error - mysql: command not found After The Installation of MySQL Community Server By JacksonML 本文简要介绍如何在macOS安装完毕MySQL数据库服务器后,针对无…...
分享一款AI绘画图片展示和分享的小程序
🎨奇绘图册 【开源】一款帮AI绘画爱好者维护绘图作品的小程序 查看Demo 反馈 github 文章目录 前言一、奇绘图册是什么?二、项目全景三、预览体验3.1 截图示例3.2 在线体验 四、功能介绍4.1 小程序4.2 服务端 五、安装部署5.1 快速开始~~5.2 手动部…...
大模型知识蒸馏技术(4)——离线蒸馏
版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl离线蒸馏概述 离线蒸馏是知识蒸馏中最早被提出且最为常见的实现方式,其核心在于教师模型和学生模型的训练是分阶段进行的。具体而言,教师模型首先在训练集上进行充分训练,直至收敛,然后利用教…...
解决DeepSeek服务器繁忙的有效方法
全球42%的企业遭遇过AI工具服务器过载导致内容生产中断(数据来源:Gartner 2025)。当竞品在凌晨3点自动发布「智能家居安装指南」时,你的团队可能正因DeepSeek服务器繁忙错失「净水器保养教程」的流量黄金期⏳。147SEO智能调度系统…...
【C++游戏开发-五子棋】
使用C开发五子棋游戏的详细实现方案,涵盖核心逻辑、界面设计和AI对战功能: 1. 项目结构 FiveChess/ ├── include/ │ ├── Board.h // 棋盘类 │ ├── Player.h // 玩家类 │ ├── AI.h // AI类 │ └── Game.h // 游戏主逻辑 ├── src/ …...
Ubuntu 下 nginx-1.24.0 源码分析 - NGX_MAX_ALLOC_FROM_POOL
NGX_MAX_ALLOC_FROM_POOL 定义在 src\core\ngx_palloc.h #define NGX_MAX_ALLOC_FROM_POOL (ngx_pagesize - 1) 在 src/os/unix/ngx_alloc.h extern ngx_uint_t ngx_pagesize; 这个全局变量定义在 src\os\unix\ngx_alloc.c 中 ngx_uint_t ngx_pagesize; 在 src/os/unix/ngx_…...
等距节点插值公式
目录 等距节点插值公式Newton 前插公式Newton 后插公式 等距节点插值公式 将 Newton 差商插值多项式中各阶差商用相应差分代替,就可得到各种形式的等距节点插值公式,例如常用的前插公式与后插公式。 Newton 前插公式 如果节点 x k x 0 k h ( k 0 , …...
BT401双模音频蓝牙模块如何开启ble的透传,有什么注意事项
BT401音频蓝牙模块如何开启ble的透传? 首先BT401的蓝牙音频模块,分为两个版本,dac版本和iis数字音频版本 DAC版本:就是BT401蓝牙模块【9和10脚】直接输出模拟音频信号,也就是说,直接推动耳机可以听到声音 …...
基于SSM框架的宠物之家系统(有源码+论文!!!)
这个系统可以帮助大家去做设计或者学习,大家可以管我要word版论文🥰这里具体论文内照片、e-r图等等加载不进来, 大家如果想要源码+论文+制定+调试,可以私信我!!(可改别的系统,例如调查问卷系统等等) 目录 第1章 绪论 1.1开发背景 1.2开发工具及语言 第2章 宠物之家系…...
计算机视觉+Numpy和OpenCV入门
Day 1:Python基础Numpy和OpenCV入门 Python基础 变量与数据类型、函数与类的定义、列表与字典操作文件读写操作(读写图像和数据文件) 练习任务:写一个Python脚本,读取一个图像并保存灰度图像。 import cv2 img cv2.im…...
深入理解正则表达式的预查
深入理解正则表达式的预查(Lookahead and Lookbehind) 在正则表达式中,预查(Lookahead and Lookbehind)是一种强大的工具,允许你在不消耗字符的情况下进行匹配检查。预查可以分为四种类型:正向肯定预查、正向否定预查、反向肯定预查和反向否定预查。 1. 正向肯定预查(…...
网工项目理论1.7 设备选型
本专栏持续更新,整一个专栏为一个大型复杂网络工程项目。阅读本文章之前务必先看《本专栏必读》。 一.交换机选型要点 制式:盒式交换机/框式交换机。功能:二层交换机/三层交换机。端口密度:每交换机可以提供的端口数量。端口速率:百兆/千兆/万兆。交换容量:交换矩阵…...
Gateway中的Filter机制
Gateway中的Filter机制 文章目录 Gateway中的Filter机制Gateway中的Filter机制Gateway Filter 机制的概述核心思想与设计Filter 的两种类型过滤器的生命周期Gateway Filter 的特点Gateway Filter 的意义Gateway Filter 的工作原理核心架构与执行流程执行流程解析过滤器类型的角…...
顺序表常用操作和笔试题
1、顺序表的常用操作 1.1 顺序表的创建 如下代码所示:创建了一个默认空间为10的整型顺序表,如果空间不足则会以1.5倍扩容。 List<Integer> list new ArrayList<>(); 创建一个空间为15的整型顺序表 List<Integer> list2 new ArrayL…...
二.数据治理流程架构
1、数据治理流程架构核心思想: 该图描绘了一个以数据标准规范体系为核心,大数据生命周期管理为主线,数据资源中心为依托,并辅以数据质量管理和大数据安全与隐私管理的数据治理流程架构。它旨在通过规范化的流程和技术手段&#x…...
【Java】泛型与集合篇(二)
泛型与集合(二) Set 接口及实现类HashSet 类特点内部实现构造方法LinkedHashSet 类基本概念特点构造方法常用方法适用场景用 Set 对象实现集合运算TreeSet 类特性构造方法常用方法注意事项对象顺序自然排序定制排序注意事项Queue 接口及实现类Queue 接口定义与特点常用方法常…...
解锁机器学习核心算法 | 线性回归:机器学习的基石
在机器学习的众多算法中,线性回归宛如一块基石,看似质朴无华,却稳稳支撑起诸多复杂模型的架构。它是我们初涉机器学习领域时便会邂逅的算法之一,其原理与应用广泛渗透于各个领域。无论是预测房价走势、剖析股票市场波动࿰…...
CSS 底部颗粒磨砂特效
参考:element-plus的顶部效果 background-image: radial-gradient(transparent 1px, var(--bg-color) 1px); background-size: 4px 4px; backdrop-filter: saturate(50%) blur(4px); 注意点:var(--bg-color) 改为跟你背景色相同的即可。 其他自己看情况…...
QT自定义扫描控件,支持任意方位拖动和拖动扫描范围。
部分代码: void FishControlForm::paintEvent(QPaintEvent *event) {QPainter p(this);p.setRenderHints(QPainter::Antialiasing|QPainter::SmoothPixmapTransform);p.translate(m_centerPoint);//bgp.setPen(Qt::white);p.drawEllipse(-m_radius,-m_radius,m_rad…...
Ubuntu18.04安装rvm、ruby2.6.5和rails5.2.6
系统环境:Ubuntu 18.04 一、安装前准备 1. sudo apt update 2. sudo apt upgrade 如果提示abort,忽略。 3. sudo apt install sqlite3 gnupg curl git libpq-dev 二、安装rvm ruby版本管理器 1.切换管理员模式 sudo su 2.安装软件签名公钥 gpg…...
