python中的各类比较与计算

1.算数运算符

# 加
print(1 + 2)
# 减
print(2 - 1)
# 乘
print(1 * 2)
# 余数   4%3=1余数为1
print(4 % 3)
# 除
print(4 // 2)
# 平方
print(4 ** 2)

在这里插入图片描述

2.关系运算符

a = 10
b = 20
# 小于
print(a < b)
# 大于
print(a > b)
# 大于等于
print(a >= b)
#小于等于
print(a <= b)
# 等于
print(a == b)
# 不等于
print(a != b)

在这里插入图片描述

不仅如此,这些算数运算符还可以对字符串进行比较。

在这里插入图片描述

这种比较的方法是在字典中排序而比较的,在字典中,排序越靠后的字符串越大,而在这里hi明显要比hello后出现,所以这里b是大于a的。

浮点数比较

注意,一般不会使用==对浮点数进行比较,因为浮点数在计算机中不是精准的,在计算过程中,很容易出现小误差。

print(0.1)
print(0.2)
print(0.3)
print(0.1+0.2)
print(0.1 + 0.2 == 0.3)

在这里插入图片描述

3.逻辑运算符

多数用于判断或循环中。

a = True
b = False
c = True
# and 与
if a and c:
    print("a和c都为true")
# or 或
if a or b:
    print("a和b有一个为true")
# not 非
if not b:
    print("b不为true")

在这里插入图片描述

一种特殊写法

在python中可以使用a<b<c,相当于a<b and b<c。这个设定与大部分的编程语言不相同。

4.关于短路求值

和其他编程语言类似,也存在短路求职的规则。

对于and,如果左侧表达式为False,则不再继续向下求职,所以即使第二条件非法也对结果无影响。

if 10>20 and 10//0>1:
    print("两个表达式都正确")
else:
    print("计算首表达式错误")

在这里插入图片描述

对于or如果左侧表达式为True,则不再计算右侧表达式的正确性。

if 10>0 or 10//0>0:
    print("有一个表达式正确")
else:
    print("两个表达式都错误")

在这里插入图片描述

5.赋值运算符

1)=的使用

表示赋值,与==不同,不仅有基础语法,还可以对多个变量进行赋值。

链式赋值
a = b = 10
多元赋值
a,b,c=10,20,30

使用多元赋值可以对交换变量进行改写:

# 普通交换两个变量
temp = a
a = b
b = temp
# 改写好的交换变量
a,b = b,a
2)复合赋值运算符

+= -= *= /= %= **= //=

+=举个例子:a += 1相当于a = a + 1,将计算的值重新赋值给a,其他复合运算符也是同理。

a = 10
a = a + 1
print(f"a={a}")
b = 10
b += 1
print(f"b={b}")

在这里插入图片描述

注意:在python中没有++ --操作,如果需要使用+=1 -=1代替即可。

6.位运算符

|:按位或

&:按位与

^:按位异或

~:按位取反

<<:按位左移

>>:按位右移

以上位操作符与其他计算机语言一致都是将数字转化为二进制数字计算。

a = 60  # 0011 1100
b = 5  # 0000 0101
print(a & b)  # 0000 0100  => 4
print(a | b)  # 0011 1101  => 61
print(a ^ b)  # 0011 1001  =>57
print(~b)     # 1111 1010  =>
print(b << 1)  # 0000 1010  =>10
print(b >> 1)  # 0000 0010  =>2

在这里插入图片描述

7.成员运算符

in:在指定的序列中找到值返回 True,否则返回 False

not in:在指定序列中找不到返回True,否则返回False

a = [1,2,3,4,5]
b = "hello"
c = 5
print(c in a)
print(b not in a)

在这里插入图片描述

8.身份运算符

is: 判断两个标识符是不是引用自一个对象

is not:判断两个标识符是不是引用自不同对象

a = 20
b = 20
c = 30
print(a is b)
print(a is not c)

在这里插入图片描述
注意:这里的is==是不同的,is是用于比较两个对象是否指向同一个,而==只是单纯判断值是否相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值