零基础学Python运算符

Posted 山舟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础学Python运算符相关的知识,希望对你有一定的参考价值。

文章目录


一、算数运算符

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

1.除法

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

print(10 / 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)

运行结果如下:


3.地板除

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

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


二、关系运算符

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)

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


2.字符串

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

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


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,虽然误差非常非常小,但仍然是不相等的。

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

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

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

这样就会输出True。


三、逻辑运算符

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

这里还要注意:

  • 对于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)

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

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

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


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

以上是关于零基础学Python运算符的主要内容,如果未能解决你的问题,请参考以下文章

转行零基础该如何学Python?

零基础学python第五课,熟悉流程控制比较运算符逻辑运算符

零基础学python第五课,熟悉流程控制比较运算符逻辑运算符

零基础学python第三课, 程序的执行原理注释运算符

零基础学python第三课, 程序的执行原理注释运算符

零基础学python第七课,while循环赋值运算符循环嵌套