res = var1 / var2
res = 8 / 8
print(res)
// (取整数) 两个数在进行地板除的时候,有一个数是小数,就在最后的结果上加.0
额这里有个小的结论我说下
** 所有数(指的是整数一个一个的)对n 进行地板除 会话产生n个相同的数**
(1-100) // 10、(1-1000)//10 产生10个相同的数
从0-9
(1-100) // 25、(1-1000)//10 产生25个相同的数
从0-24
n // 2
0 // 2 0
1 // 2 0
2 // 2 1
3 // 2 1
4 // 2 2
5 // 2 2
0 // 4 0
1 // 4 0
2 // 4 0
3 // 4 0
4 // 4 1
...
...
4个1 4个2 4个3
res = var1 // var2
res = 8 // 8
res = 28.7 // 5
print("<===>")
res = 28 // 5.3
print(res)
%取余运算
任意数 % n 取余 值得范围是多少? 0 ~ (n-1)
对于任意数n
0 % 2 0
1 % 2 1
2 % 2 0
3 % 2 1
4 % 2 0
余数是0和1
0 % 3 0
1 % 3 1
2 % 3 2
3 % 3 0
4 % 3 1
5 % 3 2
6 % 3 0
余数是0 1 2
0 % 5 0
1 % 5 1
2 % 5 2
3 % 5 3
4 % 5 4
5 % 5 0
...
...
余数是0 1 2 3 4
***** *****
"""
res = var1 % var2
res = 99 % 7
# -1 + 7 = 6 (余数)
res = -99 % 7
# 1 + (-7) = -6 (余数)
res = 99 % -7
print(res)
** var1 * var1 * var1 777 **是所有运算符 优先级最高的一个
res = var1 ** 3
print(res)
(2)比较运算符: > 、< 、>= 、<= 、== 、!=
‘’‘比较运算符只会产生2个结果 要么True 要么False’’’
<=和>= 只要满足一个条件即为真
# >
var1 = 15
var2 = 18
res = var1 > var2
print(res)
# <
res = var1 < var2
print(res)
# >= 只要满足一个条件即为真
res = var1 >= 15
print(res)
# <=
res = var1 <= 15
print(res)
# == *****
res = var1 == var2
print(res)
# != *****
res = var1 != var2
print(res)
var1 = 9
var2 = 5
res = var1
# print(res)
# +=
# var1 += var2
'''var1 = var1 + var2'''
# print(var1)
# -=
# var1 -= var2
'''var1 = var1 - var2'''
# print(var1)
# *=
# var1 *= var2
'''var1 = var1 * var2'''
# print(var1)
# /=
# var1 /= var2
'''var1 = var1 / var2'''
# print(var1)
# //=
# var1 //= var2
'''var1 = var1 // var2'''
# print(var1)
# %=
# var1 %= var2
'''var1 = var1 % var2'''
# print(var1)
# **=
var1 **= var2
'''var1 = var1 ** var2'''
print(var1)
4.成员运算符(判断a是否是b的一个成员) in 、not in 针对于容器类型数据
str 字符串需要是一个连续的片段
strvar = "如果遇到你是一种错,我宁愿一错再错"
res = "你" in strvar
res = "遇到" not in strvar
res = "我一" in strva
print(res)
list tuple set
listvar = ["周全","陈鹏","陈根基"]
res = "周全" in listvar
print(res)
tuplevar = "王新元","叶欣荣","秋波好","刘鹏程"
res = "叶欣荣" not in tuplevar
print(res)
setvar = {'周立飞','高辉'}
res = "高辉" in setvar
print(res)
dict 注意 : 判断的是键 不是值
dictvar = {"zdx":"无用","gss":"石阡","mlh":"杜十娘"}
res = "杜十娘" in dictvar
res = "mlh" not in dictvar
print(res)
身份运算符 is is not
var1 = 56
var2 = 56
res = var1 == var2 (判断两个值是否相等)
res = var1 is var2 (判断两个值得地址是否相等)
# Number
# int -5 ~ 正无穷
var1 = 56
var2 = 56
res = var1 is var2
print(res)
# float 非负数
var1 = -99
var2 = -99
print(var1 is not var2)
# bool
var1 = True
var2 = False
print(var1 is var2)
# complex
var1 = 5+6j
var2 = 5+6j
print(var1 is not var2)
# 容器类型数据 () 相同的字符串 剩下所有的容器类型数据地址都不一样
var1 = ()
var2 = ()
print(var1 is var2)
var1 = "机"
var2 = "机"
print(var1 is not var2)
容器类型数据 () 相同的字符串 剩下所有的容器类型数据地址都不一样
var1 = ()
var2 = ()
print(var1 is var2)
var1 = "机"
var2 = "机"
print(var1 is not var2)
逻辑运算符 (and or not)
(1)and 逻辑与
全真则真,一假则假
res = True and True
print(res)
res = False and True
print(res)
res = False and False
print(res)
res = True and False
print(res)
(2)or 逻辑或
‘’‘全假则假,一真则真’’’
res = True or True
res = True or False
res = False or True
res = False or False
print(res)
(3)not 逻辑非 相当于取反
res = not True
res = not False
print(res)
(4)逻辑短路
False and 布尔. 在and左边如果是False–>逻辑短路, 右侧不执行
True or 布尔, 在or左边如果是True --> 逻辑短路, 右侧不执行
在开发当中 ,当成"开关"使用
False and print(123) #逻辑短路
True or print(456) #逻辑短路
True and print(789)
逻辑运算符的优先级
(这个是xiao kuo hao) > not > and > or
# (1)
res = 5 or 6 and 7
print(res)
# (2)
res = (5 or 6) and 7
print(res)
# (3)
res = not(5 or 6) and 7
print(res) # False
数据类型判断isinstance
isinstance(要判断的值,(数据类型1,数据类型2,数据类型3,…))
最终的返回值要么是True 要么是False
int float bool complex str list set tuple dict
对于容器类型的数据只要类型元组里面含有这个数据类型,即为真
var1 = 6
res = isinstance(var1,int)
print(res)
var2 = "你好"
res = isinstance(var2,(set,list,tuple))
print(res)
# 按位与 &
var1 = 19
var2 = 15
res = var1 & var2
print(res)
"""
000000010011
000000001111
000000000011
"""
# 按位或 |
res = var1 | var2
print(res)
'''
000000010011
000000001111
000000011111
'''
# 按位异或 ^ "如果两者不相同,返回真,两者相同返回假
res = var1 ^ var2
print(res)
'''
000000010011
000000001111
000000011100
'''
# << 相当于 5 乘以 2的2次幂
res = 5 << 2
res = 4 << 3
print(res) # 20
"""
000000101
000010100
"""
# >> 相当于 5 除以 2的1次幂
res = 5 >> 1
print(res)
"""
0000101
0000010
"""
# ~ 按位非 (针对于补码来进行操作 ,连符号位都要改变) 公式 -(n+1)
res = ~19
print(res)
所有运算符的优先级:
(1) 小括号的优先级最高 () => (3+3)*5
(2)
一元运算符:同一时间操作一个数的 ( ~ , - ) -6
二元运算符: 同一时间操作二个数的
** 符号优先级最高
= 符号优先级最低
整体来说,一元运算符优先级大于二元运算符 , ** 除外
乘,除 > 加减
() > not > and > or
(<< >> ) > & > ^ > |
除此之外剩下的运算符参考以下:
**
**
赋值运算符单独拿出来 , 用来把最后的结果进行赋值的