网站建设费用兴田德润团队,网站建设一条,普陀建设网站,com域名注册1元我们进行运算时#xff0c;需要两类数据#xff0c;操作数和运算符#xff0c;例如#xff1a;ab就是一个运算#xff0c;它的操作数是a和b#xff0c;运算符是‘’
在python中运算符包括以下几大类#xff1a;
算数运算符比较#xff08;关系#xff09;运算符赋值…我们进行运算时需要两类数据操作数和运算符例如ab就是一个运算它的操作数是a和b运算符是‘’
在python中运算符包括以下几大类
算数运算符比较关系运算符赋值运算符逻辑运算符位运算符成员运算符身份运算符运算符优先级
算数运算符
算数运算符包括加、减-、乘*如果操作的对象是字符串类型那么返回的结果是将字符串重复对应次数、除/、取整除//向小的方向取整数它的运算结果的数据格式不一定是整数如果是整数取整除那么结果为整数如果是浮点数取整除那么结果为浮点数如3.02.0、取模%、幂**
以下是一些算数运算的实例
a8
b2.5
ctest
print(ab)
print(a-b)
print(a*b)
print(c*3)
print(a/b)
print(a//b)
print(-9//2)
print(a%b)
print(a**3)
运算结果为 比较关系运算符
python中的比较运算符包括等于、不等于!、大于、小于、大于等于、小于等于
下面是比较运算的实例
a5
b6
print(ab)
print(a!b)
print(ab)
print(ab)
print(ab)
print(ab)
结果为 赋值运算符
赋值运算符包括简单赋值运算符、加法赋值运算符、减法赋值运算符-、乘法赋值运算符*、除法赋值运算符/、取整除赋值运算符//、取模赋值运算符%、幂赋值运算符**、海象运算符:只有python3.8以后版本支持
以下是赋值运算符的实例
a16 #一般赋值运算符
aa #相当于aaa
print(aa运算结果为,a)
a-1 #相当于aa-1
print(a-1运算结果为,a)
a*2 #相当于aa*2
print(a*2运算结果为,a)
a/4 #相当于aa*2
print(a/2运算结果为,a)
a//2 #相当于aa*2
print(a//4运算结果为,a)
a%4 #相当于aa%2
print(a%2运算结果为,a)
a**2 #相当于aa**2
print(a**2运算结果为,a)海象运算符可以在表达式内部为变量赋值这里是先对字符串求长度并将字符串长度赋值给n再将n与10进行比较比较结果作为if语句的判断条件if (n : len(testtesttesttest)) 10:print(fList is too long ({n} elements, expected 10))如果没有海象运算符以上代码可以改为以下代码它的运行结果是一样的但是代码没有那么简洁了nlen(testtesttesttest)
if n10:print(fList is too long ({n} elements, expected 10))以下代码是用于判断输入的字符串是否为exit,如果是那么退出程序如果不是那么输出刚才输入的字符串while (inputstr:input(清输入字符串)) !exit:print(输入的字符串,inputstr)
位运算符
按位运算符是把数字看作二进制来进行计算的。位运算符包括按位与运算对应两个二进制位都为1时运算结果为1否则为0、按位或运算|对应两个二进制位有都为0时运算结果为0否则为1、按位异或运算^对应两个二进制位相异时运算结果为1否则为0、按位取反运算~将对应二进制数的每一位取反将1变为0,0变为1、左移运算符将对应数据的每一位都向左移动若干位由右边的数字来指定移动的位数高位丢弃地位补0、右移运算符将对应数据的每一位都向右移动若干位由右边的数字来指定移动的位数高位补0地位丢弃。
以下是按位运算实例
a60 #a用二进制表示为00111100
b13 #b用二进制表示为00001101
print(ab) #运算结果为00001100用十进制表示为12
print(a|b) #运算结果为00111101用十进制表示为61
print(a^b) #运算结果为00110001用十进制表示为49运算结果为11000011用十进制表示为-61,
要注意的是在计算机中不管是正数还是负数都是用它的补码来表示
但是正数的原码、反码、补码都是一样的但是负数的原码、反码、补码不一样
负数在计算机中以其绝对值的补码形式表达print(~a)
print(a2) #运算结果为11110000用十进制表示为240
print(a2) #运算结果为00001111用十进制表示为15
结果为 逻辑运算符
逻辑运算符包括与运算andx and y如果x的值为False,那么返回x的值否则返回y的计算值、或运算orx and y如果x的值为True,那么返回x的值否则返回y的计算值、非运算notnot x,如果x的值为False,那么返回True,如果x的值为True那么返回False
要注意的是在python中所有非0的数字它的布尔值都是True所有非空的字符串它的布尔值都是True
逻辑运算简单实例如下
a10
b0
c12
print(b and a) #为0返回b的值
print(a and c) #a不为0返回c的值
print(a or b) #a不为0返回a的值
print(a or c) #a不为0,返回a的值
print(b or c) #b为0返回c的值
print(not a) #a不为0返回False
print(not b) #b为0返回True
print(a and b or c) #从左到右a and b的结果为0,0 or c返回c的值
print(a and (b or c)) #先计算括号内的表达式b or c结果为c的值不为0,a的值不为0返回c的值
print(a and (not b)) #先计算括号内的表达式not b的值为True,a的值不为0返回True
结果为 成员运算符
成员运算符包括in(如果在指定的序列中找到值返回 True否则返回 False)not in(如果在指定的序列中没有找到值返回 True否则返回 False)
成员运算符简单实例如下
str1str1
list1[1,2.3,str1]
tuple1(1,2.3,str1)
set1{1,2.3,str1}
dict1{name:小花,sex:女,age:21}
a1
b2.3
cstr1
dt
ename
if a in list1:print(a在列表里面)
if b in tuple1:print(b在元组里面)
if c in set1:print(c在集合里面)
if d in str1:print(d在字符串里面)
if e in dict1.keys():print(e在字典里面)
if a not in list1:print(a不在列表里面)
if b not in tuple1:print(b不在元组里面)
if c not in set1:print(c不在集合里面)
if d not in str1:print(d不在字符串里面)
if e not in dict1.keys():print(e不在字典里面)
if 5 not in tuple1:print(5不在元组里面)
结果为 身份运算符
身份运算符包括is判断两个标识符是不是引用自一个对象is not判断两个标识符是不是引用自不同对象。
在python中对象包含三个基本要素分别是id身份标识type数据类型value值
和is的区别在于它们进行比较的内容不同用于比较value值而is用于比较id身份标识id就是内存地址相当于c语言中的指针
身份运算符的实例如下
ab[1,2,3]
c[1,2,3]
if ab:print(a和b的值相同)
if ac:print(a与c的值相同)
if a is b:print(a与b的id相同)
if a is c:print(a与c的id相同)
if a is not c:print(a与c的id不同)
print(a的id为,id(a))
print(c的id为,id(c))
结果为 运算符优先级
我们进行运算时是按照运算符的优先级顺序进行的优先级高的先执行优先级低的后执行同一优先级的按照从左往右的顺序执行。
常用运算符的优先级从高到低依次是
小括号:()幂:**正、负、按位非、-、~乘、除、整除、取余*、/、//、%加、减、-移位、按位与按位异或^按位或|比较运算包括成员运算符和身份运算符in、not in、is、is not、、、、、!、逻辑非not逻辑与and逻辑或or赋值运算符
一些简单的例子如下
a 20
b 10
c 15
d 5
e 0
e (a b) * c / d # ( 30 * 15 ) / 5
print((a b) * c / d 运算结果为, e)
e ((a b) * c) / d # (30 * 15 ) / 5
print(((a b) * c) / d 运算结果为, e)
e (a b) * (c / d) # (30) * (15/5)
print((a b) * (c / d) 运算结果为, e)
e a (b * c) / d # 20 (150/5)
print(a (b * c) / d 运算结果为, e)
运行结果为