python运算符详解(一)

简介: python运算符详解(一)

Python运算符

Hello,大家好,我是你们的老朋友景天,今天我们来一起聊聊python中的运算符。

Python中提供了各种各样的运算符帮助我们解决各种实际问题。Python中的运算符主要包括算术运算符、比较运算符、位运算符、逻辑运算符和赋值运算符。下面将一一介绍这些运算符的具体种类和使用方法。

python运算符 注意点
算数运算符 % 取余 , //地板除 , ** 幂运算
比较运算符 == 比较两个值是否相等 != 比较两个值是否不同
赋值运算符 a += 1 => a = a+1
成员运算符 in 或 not in 判断某个值是否包含在(或不在)一个容器类型数据当中
身份运算符 is 和 is not 用来判断内存地址是否相同
逻辑运算符 优先级 () > not > and > or
位运算符 优先级 (<<或 >> ) > & > ^ > | 5 << 1 结果:10 , 5 >> 1 结果:2


(1)算数运算符: + - * / // % **

#+
var1 = 7
var2 = 90
res = var1 + var2
print(res)

#-
var1 = 7
var2 = 90
res = var1 - var2
print(res)

#*
var1 = 7
var2 = 10
res = var1 * var2
print(res)

#/ 结果永远为小数
var1 = 10
var2 = 5
res = var1 / var2
print(res , type(res))

#// 地板除

//整除 9//4 结果为2 去除小数部分 返回不大于结果的一个最大的整数,意思就是除法结果向下取整

"""被除数 ➗ 除数 = 商"""
"""注意点:如果被除数或者除数是小数,那么得到正常结果之后,数值后面带上.0变成小数"""
var1 = 10.0
var2 = 3.0
#var2 = 3.0
res = var1 // var2
print(res)

相除后,取不大于结果的最大整数,负数的话要注意

#% 取余

var1 = 7
var2 = 4
res = var1 % var2
res = -7 % 4  # -3 + 4 = 1
res = 7 % -4  # 3 + (-4) = -1
res = -7 % -4 # -3 #(被除数和除数都是负的,正常结果加负号)

两个负数相除,余数仍为负数

取余 -10 /3 按正数来算余1 由于是负数,被除数有负号,就在余数上加负号,-1 然后再加上除数 -1 +3 = 2 所以取余是2

除数有负号, 余数加上除数 1 + -3 = -2 所以取余是-2

res = 81 % 7   # 4
res = 81 % -7  # -3
res = -81 % 7  # 3
res = -81 % -7 # -4
print(res)
#幂运算  a **b  = a的b次方
res = 2 ** 3
print(res)

(2)比较运算符: > < >= <= == !=

"""比较运算符的结果要么是True , 要么是False 只有两个值"""
res = 10 > 5
res = 10 >= 10
# ==这个符号是在做比较,比较==两边的数值是否一样  相等返回True ,不相等返回False
res = 5 == 9
res = 5 != 9 
print(res)

纯英文字母字符串,可以比较大小,以ascii码大小作比较

#单个字母就直接比较,多个字母就从第一个开始比较,前面相同就向后比较

(3)赋值运算符: = += -= *= /= //= %= **=

#= 赋值运算符 将右侧的值赋值给左侧变量

a = 5 <= 3
print(a)

var1 = 10
var2 = 5
# += 
"""var1 = var1 + var2"""
# var1 += var2
# print(var1)

# -=
"""var1 = var1 - var2"""
# var1 -= var2
# print(var1)

# %=
"""var1 = var1 % var2"""
var1 %= var2
print(var1)

(4)成员运算符: in 和 not in (针对于容器型数据)

“”“字符串判断时,必须是连续的片段”“”

strvar = "今天天气要下雨,赶紧回家收衣服"

res = "今" in strvar
res = "天气" in strvar
res = "赶回" in strvar
print(res)

#针对于列表,元组,集合
container = ["赵沈阳","赵万里","赵世超"]
container = ("赵沈阳","赵万里","赵世超")
container = {"赵沈阳","赵万里","赵世超"}
# res = "赵沈阳" in container
# res = "赵万里" not in container
res = "赵世超1223232" not in container
print(res)
 
# 针对于字典 (判断的是字典的键,不是值)
container = {"zsy":"赵沈阳","zwl":"赵万里","zsc":"赵世超"}
res = "赵沈阳" in container # False
res = "zsy" in container
print(res)

字典的值不能用成员运算符判断,只能用键来判断,针对多层容器中的字典,键也不能用来判断

单层容器用键可以

用值也是不可以

字典要想判断值,需要用到字典的values方法

(5)身份运算符 is 和 is not

(检测两个数据在内存当中是否是同一个值)

# 整型   所有整形,浮点型,bool,complex str tuple 只要数值一样,内存地址都相同
var1 = 100
var2 = 100
print(var1 is var2)

# 浮点型 相同
var1 = -9.1
var2 = -9.1
print(var1 is var2)

# bool 相同即可
var1 = True
var2 = True
print(var1 is var2)

# complex 相同
var1 = 6-8j
var2 = 6-8j
var1 = -10j
var2 = -10j
print(var1 is var2)

#容器: 相同字符串 , 元组相同即可 剩下的所有容器(列表,集合,字典)即便数值相同,内存地址也不相同

元祖相同

字符串相同

集合不同

列表不同

字典不同

container1 = "你"
container2 = "你"
print(container1 is not container2)

container1 = [1,23,3]
container2 = [1,23,3]
print(container1 is not container2)

(6)逻辑运算符: and or not

# and 逻辑与   
"""全真则真,一假则假"""
res = True and True    # True
res = True and False   # False
res = False and True   # False
res = False and False  # False
print(res)

# or  逻辑或  
"""一真则真,全假则假"""
res = True or True    # True
res = False or True   # True
res = True or False   # True 
res = False or False  # False
print(res)

# not 逻辑非  
res = not True
res = not False
print(res)

#逻辑短路

“”"

无论后面的表达式是True 还是False 都已经无法改变最后的结果,那么直接短路,后面的代码不执行;

(1) True or print(“程序执行了 ~ 1111”) 遇到True就不再执行后面的代码

这种就不短路

(2) False and print(“程序执行了 ~ 2222”)

True or print("程序执行了 ~ 1111")
True or True => True
True or False => True
直接返回前者,后者就不再执行了

False and print("程序执行了 ~ 2222")
False and True  => False
False and False => False
不管后面是什么,都返回False,后面的不再执行

"""

"""
计算规律:
    先脑补计算当前表达式的布尔值是True还是False
    如果出现了 True or 表达式  或者 False and 表达式的情况,直接返回前者,后面代码不执行
    如果没有出现短路效果,直接返回后者
"""
逻辑为假的十种情况,其他情况都为真
 0 , 0.0 , False , 0j  '' []  ()  set()  {}  None


res = 5 and 6 # 6      真 and 一个值还要继续往后执行,不能短路。所以执行结果是6
"""
True and True =>True
True and False => False
"""
res = 5 or 6  # 5    真 or  一个值,不管后面是真是假,结果都为真,出现短路,所以结果为5
res = 0 and 999    假 and 一个值, 不管后面是真是假,结果都为假,出现短路 结果为0
res = 0 or "abc"
print(res)

#逻辑运算符的优先级

优先级从高到低: () > not > and > or

res = 5 or 6 and 7 # 5 or 7 => 5
res = (5 or 6) and 7 # 5 and 7
res = not (5 or 6) and 7 # not 5 and 7 => False and 7 => False
res = 1<2 or 3>4 and 5<100 or 100<200 and not (700>800 or 1<-1)  =>True

not (False or False) => True
res = 1<2 or 3>4 and 5<100 or 100<200 and not (700>800 or 1<-1)
res = True or False and True or True and True =>True
res = True or False or True =>True
res = True or True => True

print(res)

python运算符详解(二):https://developer.aliyun.com/article/1495701

相关文章
|
1月前
|
Python
python一元运算符的应用
【4月更文挑战第12天】Python的一元运算符包括正号(+), 负号(-), 按位取反(~), 取绝对值(abs())和类型转换(int(), float(), str())。例如:`+a`使数值变正,`-a`变为负数,`~a`为按位取反,`abs(a)`获取绝对值,而`int(a)`, `float(a)`, `str(a)`则用于类型转换。示例代码展示了这些运算符的使用效果。
19 0
|
2天前
|
Python
【Python操作基础】——运算符
【Python操作基础】——运算符
|
14天前
|
存储 运维 算法
python运算符详解(二)
python运算符详解(二)
|
19天前
|
运维 Shell Python
第四章 Python运算符与流程控制
第四章 Python运算符与流程控制
|
20天前
|
JSON 数据格式 索引
python 又一个点运算符操作的字典库:Munch
python 又一个点运算符操作的字典库:Munch
34 0
|
20天前
|
Python
Python运算符
Python运算符
7 0
|
20天前
|
JSON 数据处理 数据格式
python 一个点运算符操作的字典库:DottedDict
python 一个点运算符操作的字典库:DottedDict
14 0
|
26天前
|
开发者 索引 Python
Python中的海象运算符:简洁而强大的赋值表达式
【4月更文挑战第17天】Python 3.8 引入了海象运算符 `:=`,也称赋值表达式运算符,用于在表达式内部赋值,简化代码并提升可读性。它能用于条件判断、循环控制和函数参数等场景,优化逻辑流程。然而,使用时需注意可读性、运算符优先级及赋值限制,以确保代码清晰易懂。海象运算符是Python编程的一个有用工具,但应根据情况谨慎使用。
|
27天前
02-python的基础语法-标识符/运算符/字符串拓展/字符串的拼接/字符串格式化/字符串精度控制/字符串格式化方式2/对表达式进行格式化/练习题/数据输入-input语句
02-python的基础语法-标识符/运算符/字符串拓展/字符串的拼接/字符串格式化/字符串精度控制/字符串格式化方式2/对表达式进行格式化/练习题/数据输入-input语句
|
28天前
|
Python
python学习2-运算符以及运算符的优先级
python学习2-运算符以及运算符的优先级