python 3.7.3 运算7错误_Python3.7知其然知其所以然-第八章 运算符

一进入小学,咱们就与算术结下了不解之缘,从手算、心算到口算,越算越聪明,越聪明越算,沉迷在算术的世界。可是自从了计算机以后,连写字都懒了,更别提算术了。

谁叫计算机除了可以进行加减乘除算术运算外,还可以进行左边值与右边值的比较运算,再者还可以通过and、or、not运算符进行的逻辑运算呢。

8.1 算术运算

算术运算,就是通过+、-、*、%、//符号进行加减乘除、取余和取模的运算,其中被除数不能为0。

8.1.1 整数和整数运算

整数和整数相加减、相乘,结果是整数。除的时候,若出现小数,自动转为浮点数。

a = 12 #整数

b = 20 #浮点数

#加法运算

c = a + b

print(c)

#减法运算

c = a – b

print(c)

#乘法运算

c = a * b

print(c)

#除法运算,结果有小数

c = a / b

print(c)

8.1.2 整数和浮点数运算

整数和浮点数运算时,整数会自动升为浮点数,这就是隐式转换,而用转换函数那些的称作显式转换。

a = 20 #整数

b = 20.25 #浮点数

#加法运算

c = a + b

print(c)

#减法运算

c = a – b

print(c)

#乘法运算

print(c)

#除法运算

c = a / b

print(c)

8.1.3 浮点数运算问题

浮点数和浮点数进行运算时,结果会出现偏差。像20.65-16.25正确答案应为:4.4,结果却是:4.399999999999999 。

a = 20.65 #浮点数

b = 16.25 #浮点数

#加法运算

c = a + b

print(c)

#减法运算

c = a – b

print(c)

#乘法运算

print(c)

#除法运算

c = a / b

print(c)

8.1.4 浮点数偏差解决

浮点数偏差问题,可以通过Decimal函数进行解决。

fromdecimal importDecimal

a = 20.65 #浮点数

b = 16.25 #浮点数

#减法运算

c = Decimal(str(a)) - Decimal(str(b))

print(float(c))

8.1.5 取模取余

通过%进行取余运算,结果返回除法的余数。通过//进行取模运算,结果返回商的整数部分。

a = 20

b = 16

#取余运算

c = a % b

print(c)

#取模运算

c = a // b

print(c)

8.1.6 幂运算

通过**进行冥运算,结果返回x的y次幂,跟内置函数pow()相同作用。

x = 2

y = 5

#冥运算

z = x ** y

print(z)

#冥函数

z = pow(x, y)

print(z)

8.1.7 复合赋值

复合运算符是算术运算符和赋值运算符合在一起的一种运算符,主要作用方便改变变量的值,有+=、-= 、*=、/=、%=、//=、**= 这7种。a += b ,表示a = a + b。其他的也类似。

a = 10

b = 20

#加法赋值运算

a += b

print(a)

#乘法赋值运算

c = 2

d = 50

d *= c

print(d)

8.2 比较运算

比较运算,就是通过比较运算符( 、>=、==、!=),对左右两边的对象进行比较,结果返回布尔值:True或False。

a = 10

b = 20

c = 10

#小于

print(a < b)

#小于等于<=比较

print(a <= c)

#大于>比较

print(a > b)

#大于等于>=比较

print(a >= c)

#等于==比较

print(a == b)

#不等于!=比较

print(a != b)

8.3 比较函数

Python3.7内置了比较函数operator.lt(a, b) 、operator.le(a, b) 、operator.eq(a, b) 、operator.ne(a, b) 、operator.ge(a, b) 、operator.gt(a, b),对应比较运算符,如operator.lt(a, b)对应小于

importoperator

a = 10

b = 20

print(operator.lt(a, b))

还有另一种表达形式:operator.__lt__(a, b) 、operator.__le__(a, b) 、operator.__eq__(a, b)、operator.__ne__(a, b) 、operator.__ge__(a, b) ,含义是一样的。

importoperator

a = 10

b = 20

print(operator.__lt__(a, b))

8.4 逻辑运算

逻辑运算,就是通过与(and)、或(or)、非(not)运算符进行的运算。and表示它的前后条件都成立时,返回True,否则返回False。or表示它的前后条件有一个为True,便返回True,否则返回False。Not的意思是取相反值,True的not是False,False的not是True。

a = 10

b = 20

c = 10

d = True

# and组合比较

result = a > b anda > c

print(result)

# or组合比较result = a < b ora > c

print(result)

# not

result = notdprint(result)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值