Python筑基之旅-运算符

目录

一、运算符

1、了解定义

2、理解意义

2-1、基本数据处理

2-2、条件判断

2-3、逻辑操作

2-4、赋值和更新

2-5、位操作

2-6、提高代码可读性

2-7、解决实际问题

2-8、学习其他编程语言的基础

3、探索方法

3-1、理解概念

3-2、练习基本运算

3-3、掌握优先级

3-4、阅读文档和教程

3-5、编写实际程序

3-6、参加编程社区

3-7、练习编程题

3-8、反思和总结

4、梳理分类

4-1、算术运算符

4-1-1、定义

4-1-2、分类

4-1-2-1、加法运算符(+)   

4-1-2-2、减法运算符(-)

4-1-2-3、乘法运算符(*)

4-1-2-4、除法运算符(/)

4-1-2-5、整除运算符(//)

4-1-2-6、取模运算符(%)

4-1-2-7、幂运算符(**或**=)

4-1-2-8、一元加号(+)

4-1-2-9、一元减号(-)

4-2、比较运算符

4-2-1、定义

4-2-2、分类

4-2-3、优先级

4-3、赋值运算符

4-3-1、定义

4-3-2、分类

4-3-3、示例

4-4、位运算符

4-4-1、定义

4-4-2、分类

4-4-2-1、位与(&)

4-4-2-2、位或(|)

4-4-2-3、位异或(^)

4-4-2-4、位取反(~)

4-4-2-5、左移(<<)

4-4-2-6、右移(>>)

4-4-3、优先级

4-5、逻辑运算符

4-5-1、定义

4-5-2、分类

4-5-2-1、逻辑与(and)

4-5-2-2、逻辑或(or)

4-5-2-3、逻辑非(not)

4-5-3、优先级

4-6、身份运算符

4-6-1、定义

4-6-2、分类

4-6-2-1、是(is)

4-6-2-2、不是(is not)

4-6-3、优先级

4-7、成员运算符

4-7-1、定义

4-7-2、分类

4-7-2-1、在...内(in)

4-7-2-2、不在...内(not in)

4-7-3、优先级

4-8、三元运算符

4-8-1、定义

4-8-2、语法

4-8-3、示例

5、明确优先级

二、推荐阅读

1、Python函数之旅

2、Python算法之旅

3、博客个人主页

一、运算符

1、了解定义

        Python中的运算符是用于执行各种算术或逻辑运算的符号,它们允许你对一个或多个值(或变量)进行运算,并返回一个新的值

2、理解意义

        学习Python中的运算符是非常重要的,因为它们构成了编程语言的基石,使得我们能够对数据进行各种操作、比较和逻辑判断

2-1、基本数据处理

        运算符允许我们执行基本的数学运算,如加、减、乘、除等,这对于处理数字数据至关重要。

2-2、条件判断

        比较运算符(如等于、不等于、大于、小于等)使我们能够比较两个值的大小或关系,从而进行条件判断,这对于编写条件语句(如if、elif、else)和循环结构(如for、while)非常重要。

2-3、逻辑操作

        逻辑运算符(如and、or、not)允许我们组合多个条件判断,以实现更复杂的逻辑操作,这对于编写健壮、灵活的代码至关重要。

2-4、赋值和更新

        赋值运算符(如=、+=、-=等)使我们能够将计算结果存储在变量中,以便后续使用或更新,这是编程中不可或缺的一部分。

2-5、位操作

        位运算符(如&、|、^、<<、>>)允许我们直接操作数据的二进制表示,这在处理底层数据或优化性能时非常有用。

2-6、提高代码可读性

        掌握运算符的优先级和用法有助于编写更易于阅读和理解的代码,当其他人(或未来的你)查看你的代码时,能够迅速理解每个表达式的作用和目的。

2-7、解决实际问题

        通过运用各种运算符,我们可以编写能够解决实际问题的程序,无论是简单的数学计算、数据处理任务还是复杂的逻辑判断,运算符都是实现这些功能的关键。

2-8、学习其他编程语言的基础

        虽然不同编程语言的语法和特性可能有所不同,但运算符的基本概念和用法通常是相似的,因此,学习Python中的运算符可以为学习其他编程语言打下坚实的基础。

        总之,学习Python中的运算符是掌握编程语言基础的重要一步,通过深入了解各种运算符的特性和用法,我们可以编写出更高效、更可靠的代码,并解决各种实际问题。

3、探索方法

        要学好Python中的运算符,你可以遵循以下几个步骤和策略:

3-1、理解概念

        首先,你需要理解运算符的基本概念、种类和用途,这包括算术运算符、比较运算符、逻辑运算符、赋值运算符、位运算符等,了解它们的功能和用法是学好运算符的基础。

3-2、练习基本运算

        通过编写简单的Python代码来练习各种运算符的使用。例如,你可以编写程序来执行加、减、乘、除等算术运算,或使用比较运算符来进行条件判断,这样的练习有助于你熟悉运算符的语法和用法。

3-3、掌握优先级

        了解运算符的优先级规则对于编写正确的代码至关重要,你需要知道哪些运算符会先被计算,哪些运算符的优先级较低,通过练习包含多个运算符的表达式,你可以加深对优先级规则的理解。

3-4、阅读文档和教程

        Python的官方文档和在线教程是宝贵的学习资源,阅读相关文档和教程可以深入了解运算符的详细用法、注意事项和最佳实践,这些资源通常包含示例代码和解释,有助于你更好地理解和应用运算符。

3-5、编写实际程序

        将所学的运算符知识应用到实际编程项目中,通过编写具有实际功能的程序,你可以更深入地理解运算符的用途和重要性;同时,这也可以帮助你发现问题并加深对运算符的理解。

3-6、参加编程社区

        加入Python编程社区,与其他编程爱好者交流和分享经验。在社区中,你可以提出问题、寻求帮助并分享你的解决方案,与其他人的互动可以帮助你更快地解决问题并提高编程能力。

3-7、练习编程题

        通过解决编程练习题来巩固所学的运算符知识,这些题目可以来自在线编程平台、书籍或课程,通过解决不同难度和类型的题目,你可以提高你的编程技能和解决问题的能力。

3-8、反思和总结

        在学习过程中,不断反思和总结自己的学习经验,思考你在学习运算符时遇到的困难、解决问题的方法以及你的收获,这样的反思和总结有助于你更好地理解学习内容并提高学习效率。

        总之,学好Python中的运算符需要理解概念、练习基本运算、掌握优先级、阅读文档和教程、编写实际程序、参加编程社区、练习编程题以及反思和总结,通过不断努力和实践,你可以逐步掌握Python中的运算符并成为一名优秀的Python程序员。

4、梳理分类

4-1、算术运算符
4-1-1、定义

        在Python中,算术运算符(Arithmetic Operators)是用于执行数学运算的符号

4-1-2、分类
4-1-2-1、加法运算符(+)   
# 1-1、加法运算符(+)
# 用于将两个或多个数相加
a = 5
b = 3
c = a + b
print(c) # 输出:8
4-1-2-2、减法运算符(-)
# 1-2、减法运算符(-)
# 用于从一个数中减去另一个数。
a = 5
b = 3
c = a - b
print(c) # 输出:2
4-1-2-3、乘法运算符(*)
# 1-3、乘法运算符(*)
# 用于将一个数与另一个数相乘
a = 5
b = 3
c = a * b
print(c) # 输出:15
4-1-2-4、除法运算符(/)
# 1-4、除法运算符(/)
# 用于将一个数除以另一个数,结果是一个浮点数(除非两个数都是整数并且结果也是整数,Python 3会返回浮点数)
a = 5
b = 3
c = a / b
print(c) # 输出:1.6666666666666667
print(type(c)) # 输出:<class 'float'>
d = 4
e = 2
f = d / e
print(f) # 输出:2.0
print(type(f)) # 输出:<class 'float'>
4-1-2-5、整除运算符(//)
# 1-5、整除运算符(//)
# 也称为地板除法,用于将一个数除以另一个数并返回商的整数部分(向下取整)
a = 5
b = 3
c = a // b
print(c) # 输出:1
print(type(c)) # 输出:<class 'int'>
4-1-2-6、取模运算符(%)
# 1-6、取模运算符(%)
# 用于计算两个数相除的余数
a = 5
b = 3
c = a % b
print(c) # 输出:2
4-1-2-7、幂运算符(**或**=)
# 1-7、幂运算符(**或**=)
# 用于计算一个数的幂(乘方),**=是幂运算符的赋值版本,它直接改变左侧变量的值
a = 5
b = 2
c = a ** b 
a **= 2
print(c) # 输出:25
print(a) # 输出:25
4-1-2-8、一元加号(+)
# 1-8、一元加号(+)
# 用于表示正数(尽管在大多数情况下是多余的)
a = +5
print(a > 0) # 输出:True
4-1-2-9、一元减号(-)
# 1-9、一元减号(-)
# 用于表示负数或取反
a = 5
b = -a
print(b) # 输出:-5
c = a + b
print(c) # 输出:0
4-1-3、优先级
# 1-10、算术运算符的优先级
# 在Python中,算术运算符的优先级遵循数学中的常规规则。以下是从高到低的算术运算符优先级列表:
# 1、幂(**或**=): 幂运算的优先级是最高的
print(2 ** 3 + 4)  # 输出 12,因为 2 ** 3 是 8,然后 8 + 4 是 12
# 2、正负号(+x, -x, +=, -=): 正负号(一元运算符)的优先级高于乘除
print(-3 * 2)  # 输出 -6,因为先计算负号
# 3、乘法(*或*=)、除法(/或/=)、整除(//或//=)和取模(%或%=): 乘、(整)除和取模运算的优先级相同,从左到右进行
print(3 * 4 / 2)  # 输出 6.0,因为先计算 3 * 4 得到 12,然后 12 / 2 得到 6.0
print(7 // 3)  # 输出 2,因为整除的结果是整数部分
# 4、加法(+或+=)和减法(-或-=): 加法和减法的优先级相同,从左到右进行
print(3 + 4 - 2)  # 输出 5,因为先计算 3 + 4 得到 7,然后 7 - 2 得到 5
# 如果在一个表达式中同时出现多个相同优先级的运算符,它们将按照从左到右的顺序进行计算(这称为左结合性)
# 可以使用括号来改变默认的优先级顺序,使得表达式按照你的意图进行计算。例如:
print(3 + 4 * 2)  # 输出 11,因为先计算 4 * 2 得到 8,然后 3 + 8 得到 11
print((3 + 4) * 2)  # 输出 14,因为括号改变了运算顺序
左结合性从左到右说明



1****=      
2+x-x+=-=    正负号(一元运算符)
3**=//=%%=////=乘法/除法/取模/整除
4++=--=    加法/减法
备注可以使用括号来改变默认的优先级顺序,使得表达式按照你的意图进行计算
4-2、比较运算符
4-2-1、定义

        在Python中,比较运算符(Comparison Operators)用于比较两个值之间关系的运算符

4-2-2、分类
4-2-2-1、等于(==)
# 2-1、等于(==)
# 判断两个对象是否相等
a = 5
b = 5
print(a == b) # 输出: True
4-2-2-2、不等于(!=)
# 2-2、不等于(!=)
# 判断两个对象是否不相等
a = 5
b = 3
print(a != b) # 输出: True
4-2-2-3、大于(>)
# 2-3、大于(>)
# 判断左边的值是否大于右边的值
a = 5
b = 3
print(a > b) # 输出: True
4-2-2-4、小于(<)
# 2-4、小于(<)
# 判断左边的值是否小于右边的值
a = 3
b = 5
print(a < b) # 输出: True
4-2-2-5、大于等于(>=)
# 2-5、大于等于(>=)
# 判断左边的值是否大于或等于右边的值
a = 5
b = 5
print(a >= b) # 输出: True
4-2-2-6、小于等于(<=)
# 2-6、小于等于(<=)
# 判断左边的值是否小于或等于右边的值
a = 3
b = 5
print(a <= b) # 输出: True
4-2-3、优先级

        在Python中,比较运算符(<<=>>=!===)的优先级是相同的。

# 2-7、比较运算符的优先级
# 以下是一个示例,说明比较运算符的优先级和左结合性:
a = 5
b = 3
c = 2
# 由于比较运算符具有相同的优先级和左结合性
# 这个表达式将首先计算 a > b,然后再与 c == 2 进行比较
result = (a > b) == (c == 2)
# 因为 a > b 是 True,c == 2 也是 True
# 所以 (True) == (True) 的结果是 True
print(result)  # 输出: True
# 如果我们改变括号的位置,比较的顺序会改变
# 但结果仍然相同,因为 a > b 和 c == 2 都是 True
result = a > (b == c)
# 但这里 b == c 是 False,所以 a > (False) 的结果是 True
print(result)  # 输出: True
result = (a > b) != c
# a > b 是 True,所以 True != 2 的结果是 True
print(result)  # 输出: True
4-3、赋值运算符
4-3-1、定义

        在Python中,赋值运算符(Assignment Operator)是用于将值或表达式的计算结果赋给变量的运算符

4-3-2、分类

        在大多数编程语言中,包括Python,赋值运算符就是=

4-3-3、示例
# 3-1、示例
# 简单的赋值
x = 10
# 赋值一个表达式的计算结果
y = x + 5  # y 的值现在是 15
# 赋值一个字符串
name = "Myelsa"
# 赋值一个列表
my_list = [1, 2, 3, 4, 5]
# 赋值一个字典
my_dict = {"key1": "value1", "key2": "value2"}
# 赋值并改变变量类型(在Python中是允许的)
print(type(x)) # 输出:<class 'int'>
x = "ten"  # 现在 x 是一个字符串
print(type(x)) # 输出:<class 'str'>
4-4、位运算符
4-4-1、定义

        在Python中,位运算符(Bitwise Operators)对整数在二进制位级别上进行操作的运算符

4-4-2、分类
4-4-2-1、位与(&)
# 4-1、位与(&)
# 对于每一对相应的二进制位,只有当两个二进制位都为1时,结果位才为1
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = a & b # 12 = 0000 1100
print(bin(c)) # 输出:0b1100,其中0b表示二进制数的前缀
4-4-2-2、位或(|)
# 4-2、位或(|)
# 对于每一对相应的二进制位,只要两个二进制位中有一个为1时,结果位就为1
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = a | b # 61 = 0011 1101
print(bin(c)) # 输出:0b111101,其中0b表示二进制数的前缀
4-4-2-3、位异或(^)
# 4-3、位异或(^)
# 对于每一对相应的二进制位,当两个二进制位相异时,结果位为1
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = a ^ b # 49 = 0011 0001
print(bin(c)) # 输出:0b110001,其中0b表示二进制数的前缀
4-4-2-4、位取反(~)
# 4-4、位取反(~)
# 对整数的二进制位取反。注意,位取反是相对于整数在计算机中表示的补码(two's complement)形式而言的。
# 对于非负数,最高位(符号位)是0;对于负数,最高位是1
a = 60 # 60 = 0011 1100
b = ~a # 结果是一个负数,具体值取决于你的系统和Python的位数(32位或64位)
print(bin(b)) # 输出:-0b111101,其中0b表示二进制数的前缀
4-4-2-5、左移(<<)
# 4-5、左移(<<)
# 将数字的位向左移动指定的位数,右边空出的位用0填充
a = 60 # 60 = 0011 1100
b = a << 2 # 240 = 1111 0000
print(bin(b)) # 输出:0b11110000,其中0b表示二进制数的前缀
4-4-2-6、右移(>>)
# 4-6、右移(>>)
# 将数字的位向右移动指定的位数
# 对于无符号整数,左边空出的位用0填充;对于有符号整数(如Python中的int),最高位(符号位)将用于确定结果的正负
a = 60 # 60 = 0011 1100
b = a >> 2 # 15 = 0000 1111
c = -24 # -24 = -0001 1000
d = c >> 2 # 6 = -0000 0110
print(bin(d)) # 输出:-0b110,其中0b表示二进制数的前缀
print(bin(b)) # 输出:0b1111,其中0b表示二进制数的前缀
4-4-3、优先级
左结合性从左到右说明



1~ 按位取反NOT(一元运算符)
2<<>>位移运算符
3& 按位与AND
4^ 按位异或XOR
5| 按位或OR
备注用括号可以改变默认的优先级顺序
4-5、逻辑运算符
4-5-1、定义

        在Python中,逻辑运算符(Logical Operators)是用于连接布尔值(True或False)或可以计算为布尔值的表达式,并根据这些值返回新的布尔值的运算符

4-5-2、分类
4-5-2-1、逻辑与(and)
# 5-1、逻辑与(and)
# 当且仅当两个操作数都为True时,and运算符返回True
# 如果两个操作数中有一个为False,则结果为False
result = True and True # 结果为 True
result = True and False # 结果为 False
4-5-2-2、逻辑或(or)
# 5-2、逻辑或(or)
# 当至少一个操作数为True时,or运算符返回True
# 如果两个操作数都为False,则结果为False
result = True or False # 结果为 True
result = False or False # 结果为 False
4-5-2-3、逻辑非(not)
# 5-3、逻辑非(not)
# not运算符用于对一个布尔值取反。
# 如果操作数为True,则not返回False;如果操作数为False,则not返回True
result = not True # 结果为 False
result = not False # 结果为 True
4-5-3、优先级



序号运算符说明
1not逻辑非
2and逻辑与
3or逻辑或
备注用括号可以改变默认的优先级顺序
4-6、身份运算符
4-6-1、定义

        在Python中,身份运算符(identity operators)用于比较两个对象的内存地址是否相同,即它们是否指向内存中的同一个对象的运算符

4-6-2、分类
4-6-2-1、是(is)
# 6-1、是(is)
# 如果两个标识符引用的是同一个对象,则返回True
a = [1, 2, 3]
b = a
c = [1, 2, 3]
print(a is b)  # 输出:True,因为b是a的引用
print(a is c)  # 输出:False,虽然a和c的内容相同,但它们是不同的对象
4-6-2-2、不是(is not)
# 6-2、不是(is not)
# 如果两个标识符引用的不是同一个对象,则返回True
a = [1, 2, 3]
b = a
c = [1, 2, 3]
print(a is not b)  # 输出:False,因为b是a的引用,指向同一对象
print(a is not c)  # 输出:True,虽然a和c的内容相同,但它们是不同的对象
4-6-3、优先级

        在Python中,身份运算符isis not本身并没有内部的优先级之分,因为它们是单个的运算符,不是组合运算符

4-7、成员运算符
4-7-1、定义

        在Python中,成员运算符(Membership Operators)用于测试一个对象(通常是序列类型,如字符串、列表、元组或集合)是否包含另一个对象作为其子元素的运算符

4-7-2、分类
4-7-2-1、在...内(in)
# 7-1、在...内(in)
# 如果指定的对象存在于另一个对象(如列表、元组、字典、字符串或集合)中,则返回True
# 列表中的成员检查
my_list = [1, 2, 3, 4, 5]
print(3 in my_list)  # 输出:True
# 字符串中的成员检查
my_string = "hello world"
print('world' in my_string)  # 输出:True
# 字典中的成员检查(注意:这里检查的是键)
my_dict = {'name': 'Myelsa', 'age': 18}
print('name' in my_dict)  # 输出:True
# 集合中的成员检查
my_set = {1, 2, 3}
print(2 in my_set)  # 输出:True
4-7-2-2、不在...内(not in)
# 7-2、不在...内(not in)
# 如果指定的对象不存在于另一个对象中,则返回True
# 列表中的成员检查
my_list = [1, 2, 3, 4, 5]
print(6 not in my_list)  # 输出:True
# 字符串中的成员检查
my_string = "hello world"
print('world' not in my_string)  # 输出:False
# 字典中的成员检查(注意:这里检查的是键)
my_dict = {'name': 'Myelsa', 'age': 18}
print('name' not in my_dict)  # 输出:False
# 集合中的成员检查
my_set = {1, 2, 3}
print(2 not in my_set)  # 输出:False
4-7-3、优先级

        在Python中,成员运算符innot in本身并没有内部的优先级之分,因为它们是单个的运算符,不是组合运算符

4-8、三元运算符
4-8-1、定义

        在Python中,三元运算符(也称为条件表达式或条件运算符)是一种简洁的编写条件语句的方式,它允许你在一行代码中根据条件来返回两个值中的一个,由if...else...结构组成,但写法更加紧凑。

4-8-2、语法
# 8-1、语法:value_if_true if condition else value_if_false
# 8-2、说明:condition是一个表达式,其结果将被评估为True或False
#          如果condition为True,则整个表达式的结果将是value_if_true
#          如果condition为False,则结果将是value_if_false
4-8-3、示例
# 8-3、示例:
x = 10
y = "positive" if x > 0 else "non-positive"
print(y)  # 输出: "positive"
x = -5
y = "positive" if x > 0 else "non-positive"
print(y)  # 输出: "non-positive"

5、明确优先级

优先级序号中文说明运算符备注



01括号() 
02一元运算符+X,-X,~X,+=,-=+代表正号;-代表负号
03**,**= 
04乘法/(整)除法/取模*,*=,/,/=,//,//=,%,%= 
05加法/减法+,+=,-,-=+代表加号;-代表减号
06位运算符<<,>> 
07按位与运算符& 
08按位异或运算符^ 
09按位或运算符| 
10比较运算符<,<=,>,>=,!=,== 
11身份运算符is,is not 
12成员运算符in,not in 
13逻辑运算符not,and,or 
14赋值运算符= 

二、推荐阅读

1、Python函数之旅

2、Python算法之旅

3、博客个人主页

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

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

相关文章

WIFI国家码设置的影响

记录下工作中关于国家码设置对WIFI的影响&#xff0c;以SKYLAB的SKW99和SDZ202模组为例进行说明。对应到日常&#xff0c;就是我们经常提及手机是“美版”“港版”等&#xff0c;它们的wifi国家码是不同的&#xff0c;各版本在wifi使用中遇到的各种情况与下面所述是吻合的。 现…

信息系统项目管理师0131:输出(8项目整合管理—8.7监控项目工作—8.7.3输出)

点击查看专栏目录 文章目录 8.7.3 输出8.7.3 输出 工作绩效报告工作绩效信息可以用实体或电子形式加以合并、记录和分发。基于工作绩效信息,以实体或电子形式编制形成工作绩效报告,以制定决策、采取行动或引起关注。根据项目沟通管理计划,通过沟通过程向项目干系人发送工作绩…

车道线识别与预警系统LDWS(代码+教程)

车道线识别与预警系统&#xff08;Lane Departure Warning System, LDWS&#xff09;作为智能交通系统中的重要组成部分&#xff0c;旨在通过先进的图像处理和计算机视觉技术&#xff0c;实时监测车辆行驶过程中的车道位置&#xff0c;预防因驾驶员疏忽或疲劳导致的车道偏离事故…

网络工程师---第三十八天

ISIS&#xff1a; ISIS含义&#xff1a;中间系统到中间系统IS-IS。 ISIS特点&#xff1a;①内部网关协议IGP&#xff08;Interior Gateway Protocol&#xff09;&#xff0c;用于自治系统内部&#xff1b; ②IS-IS也是一种链路状态协议&#xff0c;使用最短路径优先SPF算法进…

【Linux】为 VMware 的 Linux 系统(CentOS 7)设置静态IP地址

文章目录 准备工作查看 子网掩码 和 网关IP确认准备设置的虚拟机端口没有被占用 调整设置编辑配置文件配置文件说明 完成配置&#xff0c;准备测试使用命令终端连接服务器 我是一名立志把细节说清楚的博主&#xff0c;欢迎【关注】&#x1f389; ~ 原创不易&#xff0c; 如果有…

一个人应该怎么操作抖音小店呢?店铺操作流程给你讲解清楚!

大家好&#xff0c;我是电商小V 现在入驻抖音小店的有很多新手&#xff0c;新手最关心的就是一个人应该如何操作抖音小店&#xff0c;操作抖音小店需要做好哪几步呢&#xff1f;关于这个问题咱们就来详细的讲解一下&#xff0c; 第一点&#xff1a;开店 开店是做店的第一步&…

能找伴侣的相亲婚恋平台有哪些?6款值得信赖的恋爱交友软件体验测评

在这个超快节奏的社会里&#xff0c;好多人都忙着搞事业和搞钱&#xff0c;却把终身大事给忽略了。但是随着年龄越来越大&#xff0c;来自长辈和社会的压力也越来越大&#xff0c;因此网络上的相亲交友软件&#xff0c;就成了大多数单身贵族的脱单首选了。下面就来给大家讲讲我…

子线程无法访问父线程中通过ThreadLocal设置的变量

引出结论 学习过ThreadLocal的童鞋都知道&#xff0c;在子线程中&#xff0c;是无法访问父线程通过ThreadLocal设置的变量的。 package thread;/*** author heyunlin* version 1.0*/ public class ThreadLocalExample {public static void main(String[] args) throws Interr…

21.Happens-Before原则

文章目录 Happens-Before原则1.Happens-Before规则介绍2.规格介绍2.1.顺序性规则(as-if-serial)2.2.volatile规则2.3.传递性规则2.4.监视锁规则2.5.start规则2.6.join()规则 Happens-Before原则 JVM内存屏障指令对Java开发工程师是透明的&#xff0c;是JMM对JVM实现的一种规范和…

SpringBoot使用rsa-encrypt-body-spring-boot实现接口加解密

废话不多说&#xff0c;直接上代码 引入依赖 <dependency><groupId>cn.shuibo</groupId><artifactId>rsa-encrypt-body-spring-boot</artifactId><version>1.0.1.RELEASE</version> </dependency>配置文件 rsa:encrypt:# 是…

Leetcode 剑指 Offer II 079.子集

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返…

系统升级中,请稍后...Time: 2024-05-26 10:59:46 Code:OE.20001

没错&#xff01;你能看到“系统升级中&#xff0c;请稍后…Time: 2024-05-26 10:59:46 Code:OE.20001”这个提示你找到这里就对了&#xff01;以上提示是婚恋交由系统奥壹的oelove的报错内容&#xff01;为什么报错&#xff1f;那说明你不是商业用户&#xff0c;默认程序是需要…

【spring】@PathVariable注解学习

PathVariable介绍 PathVariable是Spring框架中的一个注解&#xff0c;主要用于处理RESTful风格URL中的路径变量。在RESTful接口设计中&#xff0c;我们经常将资源的ID或者其他标识信息直接放在URL路径中&#xff0c;而不是作为查询参数。PathVariable注解使得控制器方法能够轻…

FreeRTOS_同步互斥与通信_队列集_学习笔记

FreeRTOS_同步互斥与通信_环形buffer、队列_学习笔记 5.5 队列集 要支持多个输入设备时&#xff0c;我们需要实现一个“InputTask”&#xff0c;它读取各个设备的队列&#xff0c;得到数据后再分别转换为游戏的控制键。 InputTask如何及时读取到多个队列的数据&#xff1f;要…

C#的奇技淫巧:利用WinRM来远程操控其他服务器上的进程

前言&#xff1a;有时候远程服务器的进程你想偷偷去围观一下有哪些&#xff0c;或者对一些比较调皮的进程进行封杀&#xff0c;或者对一些自己研发的服务进行远程手动启动或者重启等&#xff0c;又不想打开远程桌面&#xff0c;只想悄咪咪地执行&#xff0c;那也许下面的文章会…

如何使用pycrypt加密工具测试反病毒产品的检测性能

关于pycrypt pycrypt是一款基于Python 3语言开发的加密工具&#xff0c;广大研究人员可以使用该工具来尝试绕过任意类型的反病毒产品&#xff0c;以检测目标反病毒产品的安全性能。 功能介绍 1、目前已知反病毒产品检测率为0/40&#xff1b; 2、支持绕过任意EDR解决方案&#…

中间件-------RabbitMQ

同步和异步 异步调用 MQ MQ优势&#xff1a;①服务解耦 ②异步调用 ③流量削峰 结构 消息模型 RabbitMQ入门案例&#xff0c;实现消息发送和消息接收 生产者&#xff1a; public class PublisherTest {Testpublic void testSendMessage() throws IOException, TimeoutExce…

Java进阶学习笔记21——泛型概念、泛型类、泛型接口

泛型&#xff1a; 定义类、接口、方法的时候&#xff0c;同时声明了一个或者多个类型变量&#xff08;如: <E>&#xff09;,称之为泛型类、泛型接口、泛型方法&#xff0c;我们统称之为泛型。 说明这是一个泛型类。 如果不使用泛型&#xff0c;我们可以往ArrayList中传…

PyQt6--Python桌面开发(34.QStatusBar状态栏控件)

QStatusBar状态栏控件 self.statusBar.showMessage(q.text()菜单选项被点击了,5000)