03. 运算符
一、运算符与表达式
运算符 就是对字面量或者变量进行操作的符号;表达式 是指用运算符把字面量或者变量连接起来,符合 Python 语法的式子。不同运算符连接的表达式体现的是不同类型的表达式;Python 中的运算符主要包括 算术运算符、赋值运算符、比较(关系)运算符、逻辑运算符 和 位运算符。
二、算数运算符
算术运算符是用来处理四则运算的符号。
算数运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
+ | 加 | 5 + 2 | 7 |
- | 减 | 5 - 2 | 3 |
* | 乘 | 5 * 2 | 10 |
/ | 除 | 5 / 2 | 2.5 |
% | 取模(取余) | 5 % 2 | 1 |
// | 取整除,返回商的整数部分 | 5 // 2 | 2 |
** | 幂,即返回 x 的 n 次方 | 5**2 | 25,即 $ 5^{2}$ |
a = 5
b = 2
print(a, "+", b, "=", (a + b)) # 5 + 2 = 7
print(a, "+", b, "=", (a - b)) # 5 - 2 = 3
print(a, "+", b, "=", (a * b)) # 5 * 2 = 10
print(a, "+", b, "=", (a / b)) # 5 / 2 = 2.5
print(a, "+", b, "=", (a % b)) # 5 /% 2 = 1
print(a, "+", b, "=", (a // b)) # 5 // 2 = 2
print(a, "+", b, "=", (a ** b)) # 5 ** 2 = 25a = "hello"
b = "world"
print(a, b, "=", (a + b)) # hello + world = helloworld
在代码中,如果有小数参与运算,其结果可能是不精确的;
% 取模运算结果的正负与被模数一致,即:a%b 等价于 a-a/b*b,取模结果的正负与 a 的正负一致;
字符串之间也可以进行加法运算。如果将两个字符串相加,则会自动将两个字符串拼接为一个字符串;
如果将字符串和数字相乘,则会对字符串进行复制操作,即把字符串重复指定的次数并返回,例如:“字符串”*m,表示将字符串复制 m 次;
使用除法运算符(/ 或 //)和取余运算符时,除数不能为 0,否则会报以下异常:ZeroDivisionError: division by zero
三、赋值运算符
赋值运算符 用于将右侧表达式的值赋值给左侧变量。
赋值运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
= | 赋值 | a = 10 | 将 10 赋值给变量a |
+= | 加后赋值 | a += b | 将 a + b 的值给 a |
-= | 减后赋值 | a -= b | 将 a - b 的值给 a |
*= | 乘后赋值 | a *= b | 将 a * b 的值给 a |
**= | 幂运算后赋值 | a **= b | 将 a b a^b ab 的值给 a |
/= | 除后赋值 | a /= b | 将 a / b 的值给 a |
//= | 整除后赋值 | a //= b | 将 a//b 的值给 a |
%= | 取余后赋值 | a %= b | 将 a % b 的值给 a |
# 多个变量赋值时使用逗号分隔
a,b = 10,5a += b
print("a = ",a) # 15
print("b = ",b) # 5
print()a = 10
b = 5a -= b
print("a = ",a) # 5
print("b = ",b) # 5
print()a = 10
b = 5a *= b
print("a = ",a) # 50
print("b = ",b) # 5
print()a = 10
b = 5a **= b
print("a = ",a) # 100000
print("b = ",b) # 5
print()a = 10
b = 5a /= b
print("a = ",a) # 2.0
print("b = ",b) # 5
print()a = 10
b = 5a //= b
print("a = ",a) # 2
print("b = ",b) # 5
print()a = 10
b = 5a %= b
print("a = ",a) # 0
print("b = ",b) # 5
四、关系运算符
关系运算符 也被称为 比较运算符;它用于表达式的 比较,并返回一个 真值 或 假值。
关系运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
== | 比较两个对象的值是否相等 | 4 == 3 | False |
!= | 比较两个对象的值是否不相等 | 4 != 3 | True |
< | 比较左侧值是否小于右侧值 | 4 < 3 | False |
> | 比较左侧值是否大于右侧值 | 4 > 3 | True |
<= | 比较左侧值是否小于等于右侧的值 | 4 <= 3 | True |
>= | 比较左侧值是否大于等于右侧的值 | 4 >= 3 | True |
a = 4
b = 3print(a, " == ", b, ": ", (a == b)) # False
print(a, " != ", b, ": ", (a != b)) # True
print(a, " < ", b, ": ", (a < b)) # False
print(a, " <= ", b, ": ", (a <= b)) # False
print(a, " > ", b, ": ", (a > b)) # True
print(a, " >= ", b, ": ", (a >= b)) # Truea = "1"
b = "2"
print(a, " < ", b, ": ", (a < b)) # True a = "abc"
b = "ab"
print(a, " > ", b, ": ", (a > b)) # Truea = 1
b = True
print(a, " == ", b, ": ", (a == b)) # True
在 Python 中,关系运算符可以连的使用。
result = 1 < 2 < 3 # 相当于 1 < 2 and 2 < 3
print(result)result = 10 < 20 > 15 # 相当于 10 < 20 and 20 > 15
print(result)
在 Python 中可以对字符串进行大于(等于)或小于(等于)的运算,当对字符串进行比较时,实际上比较的是字符串的 Unicode 编码,比较两个字符串的 Unicode 编码时,是逐位比较的;
如果不希望比较两个字符串的 Unicode 编码,则需要将其转换为数字然后进行再进行比较;
相等和不等比较的是对象的值,而不是 id
五、逻辑运算符
逻辑运算符 用于根据表达式的值返回 真值 或 假值。对于非布尔值进行逻辑运算,会将数据转换为布尔值,然后再进行逻辑运算。
在 Python 中,所有的对象都可以进行真值测试,其中只有下面列出的几种情况得到的值为假。
- False 或 None
- 数值中的零,包括 0、0.0、虚数0
- 空序列,包括 字符串、空元组、空列表、空字典
- 自定义对象的实例,该对象的
__bool__
方法返回 False 或者__len__
方法返回 0
逻辑运算符 | 功能 |
---|---|
and | 逻辑与,全真为真,有假为假 |
or | 逻辑或,有真为真,全假为假 |
not | 逻辑非,非假为真,非真为假 |
运算结果:
a | b | a and b | a or b | not a |
---|---|---|---|---|
True | True | True | True | False |
True | False | False | True | False |
Flase | True | False | True | True |
False | False | False | False | True |
a = True
b = True
c = False
d = Falseprint(a, " and ", b, ": ", (a and b)) # True
print(a, " and ", c, ": ", (a and c)) # False
print(c, " and ", d, ": ", (c and d)) # False
print()print(a, " or ", b, ": ", (a or b)) # True
print(a, " or ", c, ": ", (a or c)) # True
print(c, " or ", d, ": ", (c or d)) # False
print()print("not ", a, ": ", (not a)) # False
print("not ", c, ": ", (not c)) # True
print()# 对于非布尔值进行逻辑运算,会先将数据转化为布尔值,然后再进行逻辑运算
a = 1
print("not ", a, ": ", (not a)) # False
在 Python 中 与运算 和 或运算 都具有短路效果,即当左边的表达式能确定最终结果时,那么右边就不会参与运算了;
- 与运算符;与运算是找 False的,如果第一个值为 False,则不再看第二个值。
- 或运算符:或运算是找 True 的,如果第一个值为 True,则不再看第二个值。
print("与运算的短路运算")
True and print("我执行了")
False and print("我不会执行")
print()print("或运算的短路运算")
True or print("我不会执行")
False or print("我执行了")
当我们对非布尔值进行与或运算时,Python 会将其当作布尔值运算,最终会返回原值。与运算是找 False 的,如果第一个值是 False,则直接返回第一个值,否则返回第二个值。或运算是找 True 的,如果第一个值是 True,则直接返回第一个值,否则返回第二个值。
print("非布尔值的与运算")
# Ture and True
print("1 and 2: ", (1 and 2)) # 2
# True and False
print("1 and 0: ", (1 and 0)) # 0
# False and True
print("0 and 1: ", (0 and 1)) # 0
# False and False
print("0 and None: ", (0 and None)) # 0
print()print("非布尔值的或运算")
# Ture or True
print("1 or 2: ", (1 or 2)) # 1
# True or False
print("1 or 0: ", (1 or 0)) # 1
# False or True
print("0 or 1: ", (0 or 1)) # 1
# False or False
print("0 or None: ", (0 or None)) # None
六、身份运算符
身份运算符 | 功能 |
---|---|
is | 判断两个表示是否引用同一个对象,若引用的是同一个对象则返回 True,否则返回 False |
is not | 判断两个表示是否引用同一个对象,若引用的不是同一个对象则返回 True,否则返回 False |
a = 123
b = 123
c = -123
d = -123print("id(a): ",id(a))
print("id(b): ",id(b))
print("id(c): ",id(c))
print("id(d): ",id(d))
print(f"a = {a},b = {b},c = {c},d = {d}")
print()print("a is b: ", (a is b)) # True
print("a is c: ", (a is c)) # False
print()print("a is not b: ", (a is not b)) # False
print("a is not c: ", (a is not c)) # True
print()print("a is b: ",(a is b))
print("c is d: ",(c is d))
在 Python 解释器启动的那一刻开始,就会在内存中实现申请好一系列内存空间存放好常用的整数,范围为 [-5,256]。
如果用 Pycharm 等 IDE,会自动优化;
七、成员运算符
成员运算符 | 功能 |
---|---|
in | 在指定序列中找到值时返回 True,否则返回 False |
not in | 在指定序列中没有找到值时返回 True,否则返回 False |
a = "s"
b = "a"
c = "Sakura"print("a = ", a,", b = ", b,", c = ", c)
print()print("a in c: ", (a in c)) # False
print("a not in c: ", (a not in c)) # True
print()print("b in c: ", (b in c)) # True
print("b not in c: ", (b not in c)) # False
八、位运算符
位运算符是直接对整数的二进制进行的运算; 所有数字在计算机底层都以二进制形式执行;所有的整数值底层都以补码的方式存储;
- 正数:三码合一,符号位为 0;
- 负数:符号位为 1
- 原码:直接将数值转成二进制数,最高位是符号位;
- 反码:对原码按位取反,符号位不变;
- 补码:其反码加 1;
位运算符 | 运算 | 范例 |
---|---|---|
<< | 左移,空位补0,被移除的高位舍弃 | 3 << 2 = 12 |
>> | 右移,空位使用符号位填充,被移除的低位舍弃 | 3 >> 1 = 1 |
& | 与运算,二进制位进行与运算,全1为1,有0为0 | 6 & 3 = 2 |
| | 或运算,二进制位进行或运算,有1为1,全0为0 | 6| 3 = 7 |
^ | 异或运算,二进制位进行异或运算,相同为0,不同为1 | 6 ^ 3 = 5 |
~ | 按位取反,二进制位进行取反运算,非0为1,非1为0 | ~6 = -7 |
print("3 << 2: ", (3 << 2)) # 12
print("3 >> 1: ", (3 >> 1)) # 1
print("-3 >> 1: ", (-3 >> 1)) # -2
print("6 & 3: ", (6 & 3)) # 2
print("6 | 3: ", (6 | 3)) # 7
print("6 ^ 3: ", (6 ^ 3)) # 5
print("~6: ", (~6)) # -7
<<:在一定范围内,每向左移一位,相当于乘以2;
>>:在一定范围内,每向右移一位,相当于除以2;
九、三元运算符
三元运算符的格式如下:
语句1 if 条件表达式 else 语句2
它的执行流程如下:
- 条件运算符在执行时,会先对条件表达式进行求值判断
- 如果判断结果为 True,则执行语句1,并返回执行结果
- 如果判断结果为 False,则执行语句2,并返回执行结果
num = int(input("请输入一个数:"))
print("你输入的数比10大") if num > 10 else print("你输入的数不大于10")a = 10
b = 20max = a if a > b else b
print(max)
三元运算符一定可以改成 if-else 语句,反之不成立;
如果程序既可以使用三元运算符又可以使用 if-else 语句,优先使用三元运算符;
十、运算符的优先级
我们可以使用小括号来提升运算符的优先级;
优先级 | 运算符 | 名称或含义 | 使用形式 | 结合方向 | 说明 |
---|---|---|---|---|---|
1 | (expressions...) | 圆括号 | (表达式) | 左到右 | |
[expressions...] | 列表 | [表达式] | 左到右 | ||
{key:value} | 字典 | {键:值} | 左到右 | ||
{expressions...} | 集合 | {表达式} | 左到右 | ||
2 | [index] | 索引 | [常量] | 左到右 | |
[start:end:step] | 切片 | [起始索引:结束索引:步长] | 左到右 | ||
x(arguments...) | 方法调用 | 方法名(形参列表) | 左到右 | ||
x.attribute | 属性访问 | 对象.属性 | 左到右 | ||
3 | ** | 乘方 | 表达式**表达式 | 左到右 | |
4 | + | 正号运算符 | +表达式 | 右到左 | 单目运算符 |
- | 负号运算符 | -表达式 | 单目运算符 | ||
~ | 按位取反 | ~表达式 | 左到右 | ||
5 | * | 乘 | 表达式 * 表达式 | 左到右 | 双目运算符 |
/ | 除 | 表达式 / 表达式 | 双目运算符 | ||
// | 整除 | 表达式 // 表达式 | 双目运算符 | ||
% | 取余 | 表达式 % 表达式 | 双目运算符 | ||
6 | + | 加 | 表达式 + 表达式 | 左到右 | 双目运算符 |
- | 减 | 表达式 - 表达式 | 双目运算符 | ||
7 | << | 左移 | 变量 << 表达式 | 左到右 | 双目运算符 |
>> | 右移 | 变量 >> 表达式 | 双目运算符 | ||
8 | & | 按位与 | 表达式 & 表达式 | 左到右 | 双目运算符 |
9 | ^ | 按位异或 | 表达式 ^ 表达式 | 左到右 | 双目运算符 |
10 | | | 按位或 | 表达式 | 表达式 | 左到右 | 双目运算符 |
11 | > | 大于 | 表达式 > 表达式 | 左到右 | 双目运算符 |
>= | 大于等于 | 表达式 >= 表达式 | 双目运算符 | ||
< | 小于 | 表达式 < 表达式 | 双目运算符 | ||
<= | 小于等于 | 表达式 <= 表达式 | 双目运算符 | ||
== | 等于 | 表达式 == 表达式 | 双目运算符 | ||
!= | 不等于 | 表达式 != 表达式 | 双目运算符 | ||
is | is 运算符 | 变量 is 变量 | 左到右 | 双目运算符 | |
is not | is not 运算符 | 变量 is not 变量 | 双目运算符 | ||
in | in 运算符 | 元素 in 序列 | 左到右 | 双目运算符 | |
not in | not in 运算符 | 元素 not in 序列 | 双目运算符 | ||
12 | not | 逻辑非 | not 表达式 | 左到右 | 单目运算符 |
13 | and | 逻辑与 | 表达式 and 表达式 | 左到右 | 单目运算符 |
14 | or | 逻辑与 | 表达式 and 表达式 | 左到右 | 单目运算符 |
15 | if-else | 三元表达式 | 语句1 if 条件表达式 else 语句2 | ||
16 | = | 赋值运算符 | 变量=表达式 | 右到左 | |
/= | 除后赋值 | 变量/=表达式 | |||
*= | 乘后赋值 | 变量*=表达式 | |||
%= | 取模后赋值 | 变量%=表达式 | |||
+= | 加后赋值 | 变量+=表达式 | |||
-= | 减后赋值 | 变量-=表达式 | |||
<<= | 左移后赋值 | 变量<<=表达式 | |||
>>= | 右移后赋值 | 变量>>=表达式 | |||
&= | 按位与后赋值 | 变量&=表达式 | |||
^= | 按位异或后赋值 | 变量^=表达式 | |||
|= | 按位或后赋值 | 变量|=表达式 |
相关文章:
03. 运算符
一、运算符与表达式 运算符 就是对字面量或者变量进行操作的符号;表达式 是指用运算符把字面量或者变量连接起来,符合 Python 语法的式子。不同运算符连接的表达式体现的是不同类型的表达式;Python 中的运算符主要包括 算术运算符、赋值运算符…...

【最优清零方案——贪心+滑动窗口+线段树】
题目 代码 #include <bits/stdc.h> using namespace std; using ll long long; const int N 1e6 10; int a[N]; struct node {int l, r;int m, p, lazy; } tr[4 * N]; void pushup(node &u, node &l, node &r) {if (l.m r.m){u.m l.m;u.p max(l.p, r.…...
一个点绕任意点旋转后的点的坐标
在平面坐标上,任意点P(x1,y1),绕一个坐标点Q(x2,y2)逆时针旋转θ角度后,新的坐标设为(x, y)的计算公式: x (x1 - x2)*cos(θ) - (y1 - y2)*sin(θ) x2 ; y (x1 - x2)*sin(θ) (y1 - y2)*cos(θ) y2 ; 另一个场景应用,坐标轴绕…...
大数据面试题每日练习--HDFS是如何工作的?
HDFS(Hadoop Distributed File System)是一个分布式文件系统,设计用于存储非常大的文件。它的主要工作原理如下: NameNode:管理文件系统的命名空间,维护文件目录树和文件元数据信息。NameNode记录每个文件…...

Python的3D可视化库 - vedo (2)visual子模块 基本可视化行为
文章目录 1. visual模块的继承关系2. 基类CommonVisual的方法2.1 获取对象信息2.1.1 对象本身信息2.1.2 对象的查找表2.1.3 对象标量范围2.1.4 对象缩略图 2.2 呈现对象2.2.1 在窗口显示1.2.2 对象可见性 2.2.3 对象颜色2.2.4 对象透明度 2.3 添加标度条2.3.1 2D标度条2.3.2 3D…...
Java AIO(NIO.2)
Java AIO(Asynchronous I/O,异步I/O),也被称为NIO.2,是Java平台提供的一种处理异步输入/输出操作的机制。作为Java NIO(New I/O)的扩展,AIO引入了一些新的API和特性,旨在…...
Flink 常用问题及常用配置(有用)
一、Flink 常用问题及常用配置 参数 示例 说明 execution.checkpointing.interval 3min Checkpoint 触发间隔 state.backend rocksdb / filesystem 用于设置statebackend类型, 默认会以内存为statebackend(无法支持大状态) taskmanager.memory.jvm-overhead.max 204…...

RocketMQ: 消息过滤,通信组件,服务发现
消息过滤 1 ) 简单消息过滤 /*** 订阅指定topic下tags分别等于 TagA 或 TagC 或 TagD */consumer.subscribe("TopicTest1", "TagA || TagC || TagD");如以上代码所示,简单消息过滤通过指定多个 Tag 来过滤消息,过滤的动作在服务器进…...

linux ubuntu的脚本知
目录 一、变量的引用 二、判断指定的文件是否存在 三、判断目录是否存在 四、判断最近一次命令执行是否成功 五、一些比较符号 六、"文件"的读取和写入 七、echo打印输出 八、ubuntu切换到root用户 N、其它可以参考的网址 脚本功能强大,用起来也…...

HTTP有哪些风险?是怎么解决的?
一、风险 HTTP是通过明文传输的,存在窃听风险、篡改风险以及冒充风险。 二、如何解决 HTTPS在HTTP的下层加了一个SSL/TLS层,保证了安全,通过混合加密解决窃听风险、数字签名解决篡改风险、数字证书解决冒充风险。 (1࿰…...

3.12MayBeSomeLinearAlgebra
X是M*(D1),XT为(D1)*M Ω是一行D1列,X乘以欧米噶是M行D1列 行是说样本个数,列是特征数量 如果是小样本,那么可能会出现特征数量大于样本个数 如果MD*DM就是M*M,...

学习日志015--python单链表
创建 class Node:def __init__(self,data):# 数据域self.data data# 链接域self.next Noneclass LinkList:def __init__(self,):# 初始化头节点self.head None# 记录链表的长度self.size 0 增加 #头插def insert_head(self,value):# 创建新节点node Node(value)q self…...

如何在Windows右键新建菜单中添加自定义项
Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\.py] "Python.File"[HKEY_CLASSES_ROOT\.py\ShellNew] "NullFile"""[HKEY_CLASSES_ROOT\Python.File] "FriendlyTypeName""文本.py"[HKEY_CLASSES_ROOT\Python.Fil…...
Spring Boot 3.0废弃了JavaEE,改用了Jakarta EE
Spring Boot 3.0废弃了JavaEE,改用了Jakarta EE 历史背景 javax变成Jakarta的主要原因是因为Java EE项目从Oracle转移到了Eclipse Foundation,并改名为Jakarta EE。 JavaEE是从Java 1.2版本开始推出的Java企业级开发平台,最初的名称是J2EE(J…...
pdf文档动态插入文字水印,45度角,旋转倾斜,位于文档中央,多行水印可插入中文
一行水印 /*** param inputFile 你的PDF文件地址* param outputFile 添加水印后生成PDF存放的地址* param waterMarkName 你的水印* return*/public static boolean waterMark(String inputFile,String outputFile, String waterMarkName){try {PdfReader reader new PdfRead…...
[ 渗透测试面试篇-2 ] 针对大规模资产的攻击思路
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...
深入解析 Web 应用中的 CHIPS(Partitioned Cookie Attribute)
深入解析 Web 应用中的 CHIPS(Partitioned Cookie Attribute) 最新发现flask3.1.0 的版本引入了新的特性:对CHIPS的支持。不少同学对这个可能有点陌生,本文带大家了解一下。 为了在隐私保护和功能需求之间取得平衡,Goo…...

从搭建uni-app+vue3工程开始
技术栈 uni-app、vue3、typescript、vite、sass、uview-plus、pinia 一、项目搭建 1、创建以 typescript 开发的工程 npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project2、安装sass npm install -D sass// 安装sass-loader,注意需要版本10,…...
归并排序与逆序对问题(C语言版)
一、引言 归并排序是一种高效且稳定的排序方法,而逆序对问题是算法领域的一个经典问题,本文教大家如何实现归并排序,以及如何使用归并排序去结果逆序对问题 二、归并排序 归并排序思想 分解:将待排序的数组分成两半,…...

网络爬虫总结与未来方向
通过深入学习和实际操作,网络爬虫技术从基础到进阶得以系统掌握。本节将全面总结关键内容,并结合前沿技术趋势与最新资料,为开发者提供实用性强的深度思考和方案建议。 1. 网络爬虫技术发展趋势 1.1 趋势一:高性能分布式爬虫 随…...

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...