文章目录

  • 一、算数运算符
  • 1.除法
  • 2.乘方
  • 3.地板除
  • 二、关系运算符
  • 1.整数
  • 2.字符串
  • 3.浮点数
  • 三、逻辑运算符
  • 四、赋值运算符
  • 感谢阅读,如有错误请批评指正



一、算数运算符

加、减、乘、取模四个运算符比较简单,在使用时也没有什么问题。下面着重讲解一下其他算数运算符

1.除法

除法需要注意的就是除零错误。

print(10 / 0)

运行上面的代码会得到下面的报错,这样的在运行时出现的错误也叫“抛异常”。如果程序运行过程中抛异常,那么程序就直接终止了,这之后的代码也不会再运行。

1变为0 python3 把0变为1 python中0_浮点数


在Python中,除数是0.0时也会报错,值得注意的是在某些编程语言中除0.0会得到无穷大的结果,但Python都认为是除零错误。

除此之外,整数与整数相除如果有小数不会截断,会得到小数的结果,比如在C语言中1/2=0,而在Python中1/2=0.5。


2.乘方

Python中用两个乘号表示乘方运算,指数可以是整数也可以是小数(开方)。

print(2**3)
print(4**0.5)
print(4**-1)

运行结果如下:

1变为0 python3 把0变为1 python中0_开发语言_02


3.地板除

这里的地板除就是C/C++等语言中的除法,当有小数时直接把小数部分截断,对整数部分“向下取整”(这里要注意正负数的区别)。

print(7 / 2)
print(7 // 2) # 3.5向下取整得3
print(-7 // 2) # -3.5向下取整得-4

1变为0 python3 把0变为1 python中0_1变为0 python3 把0变为1_03


二、关系运算符

1.整数

像<、 <=、 >、 >=、 ==、 !=这样的运算符称为关系运算符,它们是用来比较操作数之间的关系的。

关系运算符对应的表达式返回的结果是布尔类型,若表达式为真,返回True,否则返回False。

a = 10
b = 20
print(a > b)
print(a >= b)
print(a < b)
print(a <= b)
print(a == b)
print(a != b)

这些表达式很简单也很容易理解,这里不多赘述。

1变为0 python3 把0变为1 python中0_1变为0 python3 把0变为1_04


2.字符串

关系运算符不仅可以比较数字之间的关系,还可以比较字符串的“大小”,比较的依据是ASCII码,从前往后对应的字符小则小,若相等则继续向后比较。

a = "hello"
b = 'world'
print(a > b)
print(a >= b)
print(a < b)
print(a <= b)
print(a == b)
print(a != b)

1变为0 python3 把0变为1 python中0_浮点数_05


3.浮点数

这里主要需要说明的就是浮点数使用 == 比较时会有一定的风险,因为浮点数在内存中的存储和表示一般是存在误差的,这样的误差看起来很小,但在运算时可能被放大,导致 == 出现误判。

比如下面的代码

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

判断0.1 + 0.2 == 0.3时给出False,原因是0.1和0.2在做加法时出现了误差,导致最终结果不是刚刚好的0.3,虽然误差非常非常小,但仍然是不相等的。

1变为0 python3 把0变为1 python中0_python_06

下面是浮点数的正确比较方法,由于大多数浮点数在存储时都是有误差的,所以只要给一个能接受的误差限度,如果两个浮点数的差距比这个误差限度小,那么就认为这两个浮点数是相等的。

eps = 1e-6  # 误差限度
a = 0.1 + 0.2
b = 0.3

print(-eps < (a - b) < eps)  # Python中支持这种连续小于的写法(C/C++不支持)

这样就会输出True。

1变为0 python3 把0变为1 python中0_python_07


三、逻辑运算符

Python的逻辑运算符有and、or、not,对应C语言中的&&、||、!。

a = 10
b = 20
c = 30
print((a < b) and (b < c))  # a < b和b < c都成立,输出True
print((a > b) or (b < c))  # a > b不成立但b < c成立,输出True
print(not (a < b))  # a < b为True,取反后为False

1变为0 python3 把0变为1 python中0_浮点数_08

这里还要注意:

  • 对于and操作,如果左侧的表达式为False,那么整体的值一定是False,右侧表达式的结果是什么都无关紧要,所以就不会再去计算右侧的表达式。
  • 对于or操作,如果左侧的表达式为True,那么整体的值一定是True,右侧表达式的结果是什么都无关紧要,所以就不会再去计算右侧的表达式。

四、赋值运算符

= 表示赋值,意义就是把右侧的值填到左侧的地址中(==是比较左右两个值是否相等,一定要区分清楚)。

这个运算符比较简单,借此介绍一个Python中比较好用的操作。

在之前的C语言中,想要交换两个变量的值需要如下所示,创建一个temp变量来接受其中的一个值,比较麻烦。

a = 10
b = 20
print(a, b)
tmp = a
a = b
b = tmp
print(a, b)

1变为0 python3 把0变为1 python中0_python_09

Python中提供了多元赋值,一步到位完成交换,写法简便且可读性很高。

a = 10
b = 20
print(a, b)

a, b = b, a  # 多元赋值
print(a, b)

1变为0 python3 把0变为1 python中0_1变为0 python3 把0变为1_10


感谢阅读,如有错误请批评指正