零基础学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第五课,熟悉流程控制比较运算符逻辑运算符