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

相关文章
|
2月前
|
Python
【10月更文挑战第7天】「Mac上学Python 14」基础篇8 - 运算符详解
本篇将详细介绍Python中的运算符,包括数学运算、关系运算、逻辑运算、赋值运算和成员运算等内容。同时会说明运算符的优先级和运算顺序,帮助用户理解和掌握Python中的运算符使用规则。
39 3
【10月更文挑战第7天】「Mac上学Python 14」基础篇8 - 运算符详解
|
2月前
|
自然语言处理 Python
【python从入门到精通】-- 第三战:输入输出 运算符
【python从入门到精通】-- 第三战:输入输出 运算符
67 0
【python从入门到精通】-- 第三战:输入输出 运算符
|
2月前
|
存储 Java 编译器
Python学习三:学习python的 变量命名规则,算数、比较、逻辑、赋值运算符,输入与输出。
这篇文章是关于Python编程语言中变量命名规则、基本数据类型、算数运算符、比较运算符、逻辑运算符、赋值运算符以及格式化输出与输入的详细教程。
20 0
Python学习三:学习python的 变量命名规则,算数、比较、逻辑、赋值运算符,输入与输出。
|
2月前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (一)
Python操作:字符串--列表--元组--字典--运算符 (一)
|
2月前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (二)
Python操作:字符串--列表--元组--字典--运算符 (二)
|
4月前
|
JavaScript 前端开发 开发者
如何在 Python 中使用三元运算符?
【8月更文挑战第29天】
43 3
|
4月前
|
算法 测试技术 Python
Python接口自动化测试框架(基础篇)-- 有点意思的运算符
这篇文章介绍了Python中的各种运算符,包括算术运算符、比较运算符、赋值运算符、逻辑运算符、成员运算符、位运算符和身份运算符,并讨论了运算符的优先级,以及序列类型的相关知识。
23 0
Python接口自动化测试框架(基础篇)-- 有点意思的运算符
|
4月前
|
Python
二:《Python基础语法汇总》— 输入与输出&运算符
【8月更文挑战第16天】本篇文章详细讲述了关于输入输出函数的语法及占位符;转义字符和运算符的使用,并附上详细的代码示例
36 2
|
5月前
|
Python
Python基础语法:运算符详解(算术运算符、比较运算符、逻辑运算符、赋值运算符)
运算符是Python编程中的重要组成部分,理解并熟练使用这些运算符有助于编写高效、简洁的代码。本文详细介绍了算术运算符、比较运算符、逻辑运算符和赋值运算符的使用方法,并通过综合示例展示了它们在实际编程中的应用。希望通过本文的介绍,您能更好地掌握Python中的运算符。
191 13
|
4月前
|
Python
Day 6/100:Python运算符
Day 6/100:Python运算符
33 0