彩虹然

rainbow-ran

Python3.7之运算符

一、逻辑运算符

and:x and y,布尔"与" -> 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。

or:x or y,布尔"或"-> 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。

not:not x,布尔"非" -> 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

逻辑运算符优先级:not > and > or

>>> 1 and 0 or 1 and 8
8
>>> 1 and 7 or 0 and 8
7

二、三目运算符

python可通过 if 语句来实现三目运算符的功能,因此可以近似地把这种if语句当成三目运算符。作为三目运算符的 if 语句的语法格式如下:

True_statements if expression else False_statements

三目运算符的规则是:先对逻辑表达式 expression 求值,如果逻辑表达式返回 True,则执行并返回 True_statements 的值;如果逻辑表达式返回 False,则执行并返回 False_statements 的值

>>> x = 3
>>> y = 5
>>> x if x>y else y
5

x = 10
y = 5
print('x最大,值为'+str(x)) if x > y else print('y最大,值为'+str(y))
# x最大,值为10

三、除法/和//

在Python中,除法有两种:/和//。

X / Y

对于Python2.X来说,如果两个操作数都是整数,那么结果将向下取整(这个和C里面的不同,C里面是向0取整),也就是说,如果结果本来是-2.5,那么向下取整为-3,如果结果本来是2.5,那么向下取整为2;如果两个操作数有浮点数,那么就是浮点数除法,结果就是浮点数除法;对于Python3.X来说,不管操作数有没有浮点数,都是浮点数除法。

>>> 8/5
1.6
>>> 8.5%5
3.5

上面比较有意思的是对于%取余运算,在Python中,和C语法不同的是,取余运算符支持浮点数运算,并且如果操作数有浮点数,那么返回的结果类型也是浮点型。

X // Y

//运算对于Python2. X和Python3. X来说,效果是一样的,无论操作数都是整数,还是包括浮点数,//都会向下取整,当然对于有浮点数的计算,结果仍会以浮点数形式返回。

>>> -5.0//2
-3.0
posted @ 2020-01-16 15:55  彩虹然  阅读(546)  评论(0编辑  收藏  举报