Python基础到进阶实战系列(六):运算符详解
**
[TOC]全文目录
**
1.算术运算符
2.赋值运算符
3.比较运算符
4.逻辑运算符
5.位运算符
6.成员运算符
7.身份运算符
说到运算符有很多,运算符就是一种特殊的符号,用来表示数据的运算,赋值和比较等,常见的运算符有以下几种:
1.算术运算符
2.赋值运算符
3.比较运算符
4.逻辑运算符
5.位运算符(需要在二进制的基础上进行)
6.成员运算符
7.身份运算符
8.运算符优先级
1.算术运算符
算术运算符是对数值类型的变量进行运算的。
** 算术运算符一览表**
运算符 | 运算/描述 | 范例 | 结果 |
---|---|---|---|
+ | 加-两个对象相加 | 5+5 | 10 |
— | 减-两个对象相减 | 6—4 | 2 |
* | 乘—两个数相乘 | 3*4 | 12 |
/ | 除-两个数相除 | 5/5 | 1 |
% | 取模 – 返回除法的余数 | 7%5 | 2 |
// | 取整除 – 往小的方向取整数(向下取整) | 9//2 | 4 |
** | 幂 – 返回x的y次幂 | 2**4 | 16 |
具体代码实现如下:
a = 21
b = 10
c = 0
c = a + b
print("1 - c 的值为:", c)
c = a - b
print("2 - c 的值为:", c)
c = a * b
print("3 - c 的值为:", c)
c = a / b
print("4 - c 的值为:", c)
c = a % b
print("5 - c 的值为:", c)
# 修改变量 a 、b 、c
a = 2
b = 3
c = a ** b
print("6 - c 的值为:", c)
a = 10
b = 5
c = a // b
print("7 - c 的值为:", c)
运行结果如下:
1 - c 的值为: 31
2 - c 的值为: 11
3 - c 的值为: 210
4 - c 的值为: 2.1
5 - c 的值为: 1
6 - c 的值为: 8
7 - c 的值为: 2
从这串代码可知,算术运算符的基本用法,由输出结果不难看出,都带有1-c,2-c等,是为了增加代码的可读性,区分输出的结果是哪一类算术的结果出来的。有多行代码同时出现这种算术运算,这样区分增加了代码的可读性。
下面来具体说一下几种特殊运算符的作用:
第一个:%
计算 a 除以 b 的余数,结果赋值给 c。
a % b 的结果是 21 % 10 = 1(因为 21 / 10 = 2 余 1),因为%的作用是取余数,所以最后输出的结果是1。还有一种情况就是,如果两个数,有一个浮点数,那相除得出的结果就是小数。
第二个://
描述:取整除 – 往小的方向取整数(向下取整)
计算 a 除以 b 的整数部分,结果赋值给 c。
a // b 的结果是 10 // 5 = 2(因为 10 / 5 = 2.0,整数部分是 2),得出的整数部分是2,所以输出是2。
第三:**
计算 a 的 b 次方,结果赋值给 c。
a ** b 的结果是 2 ** 3 = 8(即 2 * 2 * 2 = 8)所以输出的结果是8
2.比较运算符
比较运算符的结果就是True或者是False,每一次比较的结果都是其中之一。在比较表达式中,经常用在if结构的条件,为True就执行相应的语句,为False就不执行。
比较运算符一览表
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
== | 等于 | 4==3 | False |
!= | 不等于 | 4!=3 | True |
< | 小于 | 4<3 | False |
> | 大于 | 4>3 | True |
<= | 小于等于 | 4<=3 | False |
>= | 大于等于 | 4>=3 | True |
is | 判断两个变量引用对象是否为同一个 | ||
is not | 判断两个变量引用对象是否为不同 |
具体案例,代码实现如下:
a = 9
b = 8
print(a>b)
print(a>=b)
print(a<=b)
print(a<b)
print(a==b)
print(a!=b)
#运行结果:
True
True
False
False
False
True
继续再来看一下is和is not的用法,代码实现如下:
a = 9
b = 8
#把a>b比较的结果,赋值给flag
flag =a > b #flag = True
print("flag =",flag)
print(a is b)
print(a is not b)
运行结果如下:
flag = True
False
True
所以对于比较运算符及比较运算符组成的表达式来看,小结:
1.比较运算符的结果要么是True,要么就是False
2.比较运算符组成的表达式,通常称之为比较表达式,比如:a>b
3.在比较运算符中,等号通常是双等号拼接而成,例如:“==”,不能写成“=”
**
3.逻辑运算符
**
逻辑运算符也称为布尔运算符
逻辑/布尔运算符一览表
在下表中,假设a=10,b=20则:
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" :如果x为False,x and 返回x的值,否则返回y的计算值。 | (a and b)返回 20 |
or | x or y | 布尔“或” :如果 x是True,它返回x的值,否则它返回y的值。 | (a or b)返回10 |
not | not x | 布尔“非” : 如果x 为 True,返回 False.如果x 为False,它返回True | not(a and b) 返回 False |
“and”使用,代码实操如下:
#定义一个成绩变量
score = 70
#判断成绩是否在60-80之间
print(score >= 60 and score <= 80)
运行结果:
True
继续看下面代码:
a = 1
b = 99
print(a and b)
运行结果如下:
99
说明一下,这里的代码输出结果是99,因为a= 1为真值(True),那么and运算符就会继续评估b,b=99也为真值,,所以and运算符返回b,最后输出结果就为99。
看一下下面的代码:
a = 1
b = 99
#print(a and b)
print((a>b) and b)
print((a < b) and b)
运行结果:
False
99
这里的输出结果,一个是False,另一个输出是99,因为a>b是个假值,a<b为真值,而在Python()中括起来的运算优先级最高,所以最后输出结果才是False和99。
在逻辑运算中对于"and"使用小结和规则:
1.在Python()中,非0被视为真值,0值被视为假值
2.在Python()中括起来的运算优先级最高。
3.and是一种"短路运算符",只有当第一个为True时才去验证第二个。
逻辑运算or使用及代码演练:
代码实现如下:
#定义一个成绩的变量
score = 70
#判断成绩是否<=60或者>=80
if score <=60 or score >=80:
print("你很优秀")
输出:
在这串代码中输出的是空值,or 是 Python 中的逻辑或运算符,具有短路特性。它的返回值规则是:
1.如果第一个操作数为真,则直接返回第一个操作数,不再评估第二个操作数。
2.如果第一个操作数为假,则返回第二个操作数。
在这串代码中,两个条件都为假值,所以最后输出print()没有执行,直接输出为空白。
拓展:在python()中,这些都被视为假值(Flase)在 Python 中,以下值被视为假(False):
False, None ,0 ,“”(空字符串), [](空列表,) ()(空元组), {}(空字典), 其他所有值都被视为真(True)
逻辑运算符not使用及演练和规则:
如果操作数是 False、None、0、空字符串 “”、空容器(如 []、()、{} 等),not 返回 True。
其他情况下(即操作数为“真”值),not 返回 False。
以下代码可以看出:
# not使用演练及规则
a = 3 # 定义变量 a,赋值为 3
b = not(a > 3) # 判断 a > 3 为 False,取反后 b = True
print(b) # 输出 True
print(not False) # not False = True
print(not True) # not True = False
print(not 0) # 0 是假值,not 0 = True
print(not "jack") # 非空字符串是真值,not "jack" = False
print(not 1.88) # 非零数字是真值,not 1.88 = False
print(not a) # a=3 是真值,not a = False
输出如下:
True
True
False
True
False
False
False
由代码看出,输出结果按照其使用规则进行输出。
4.赋值运算符
赋值运算符就是将某一个运算后的值,赋给指定的变量
具体运算符由下面可得出:
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c=a+b,将a+b的运算结果赋值为c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于c = c – a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a等效于c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于c = c // a |
:= | 海象运算符,这个运算符的主要目的是在表达式中同时进行赋值和返回赋值的值。Python3.8 版本新增运算符。 | 在这个示例中,赋值表达式可以避免调用 len() 两次, |
具体演示如下:
加法赋值运算(+=)
#加法赋值运算:
i = 100 #对i进行初始化赋值
i += 100 # 等效于i = i +100
print(“i=”,i) #输出200
减法赋值运算(-=)
i = 100
i += 100 # i = i +100
print(“i =”,i) #输出200
i -=100 #等效于i = i-100
print(“i =”,i) #输出结果为100
作者:追梦撩编程