运算符和表达式
上节课回顾
上节课我们学习了变量的相关知识,(创建变量,访问变量以及变量的命名规则)。
这节课我们来学习运算符和表达式。
程序语言的最大作用就是将数据经过处理、运算后,转换成有用的信息供我们使用。Python程序语言有不同种类的运算符,可以和变量一起组成表达式,然后进行运算。
01.表达式
表达式由操作数和运算符组成
操作数:包括变量、数值和字符。如-1中的1,1+1中的1和1,i+2中的i和2等;
运算符:包括算数运算符、赋值运算符、逻辑运算符和比较运算符等。
02.算数运算符
是完成基本的算术运算使用的符号,用来处理四则运算
运算符 | 运算方式 | 含义 | 示例 |
---|---|---|---|
+ | 加 | 10+20=30 | |
- | 减 | 30-10=20 | |
* | 乘 | 2*5=10 | |
/ | 除 | 10/20=0.5 | |
// | 整除 | 舍弃余数,返回除法的整数部分(商) | 11/2=5 |
% | 取余 | 只要余数,返回除法的余数 | 11%2=1 |
** | 幂 | 几次方的意思,指数运算 | 3**3=27 |
1.1算数运算符的优先级
- 和数学中的运算符的优先级一致,在python中进行数学计算时,同样也是:
》先乘除后加减
》同级运算符是从左至右计算
》可以使用()调整计算的优先级 - 以下表格的算数优先级由高到低顺序排练
运算符 | 描述 |
---|---|
** | 幂(最高优先级) |
*/%// | 乘、除、取余、取整 |
+、- | 加法、减法 |
例如:
2+3*5=17
(2+3)*5=25
2*3+5=11
2*(3+5)=16
2*(12+56)/8 #有括号优先
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)
c = a // b
print("6 c 的值为:", c)
c = a - b * a
print("7 c 的值为:", c)
c = a * (b - b)
print("8 c 的值为:", c)
03.赋值运算符
在 Python 中,使用 = 可以给变量赋值
赋值运算符可以结合算数运算符一起使用,可以用变量作为操作数,把运算后的结果再赋值给变量。
number = 13 #赋值给number的变量值为13
number = number+30 #将变量number的值’13‘加30得到43,再赋值给变量number保存
- 在算术运算时,为了简化代码的编写,Python 还提供了一系列的 与 算术运算符 对应的 赋值运算符
- 注意:赋值运算符中间不能使用空格
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | 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 |
a = 21
b = 10
c = 0
c = a + b
print ("1 c 的值为:", c)
c += a
print ("2 c 的值为:", c)
c *= a
print ("3 c 的值为:", c)
c /= a
print ("4 c 的值为:", c)
c = 2
print("C 赋值为 2")
c %= a
print ("5 c 的值为:", c)
c //= a
print ("6 c 的值为:", c)
04.比较(关系)运算符
比较运算符用来比较两个操作数的大小,结果以布尔值True或False输出。
运算符 | 运算 | 结果 | 说明 |
---|---|---|---|
> | 20>10 | True | 20大于10,输出True |
< | 20<10 | False | 20小于10,输出False |
>= | 20>=10 | True | 20大于或等于10,输出True |
<= | 20<=10 | False | 20小于或等于10,输出False |
== | 20==10 | False | 20等于10,输出False |
!= | 20!=10 | True | 20不等于10,输出True |
05.逻辑运算符
逻辑运算符是用于对表达式的True、False值进行逻辑判断
运算符 | 表达式1 | 表达式2 | 结果 | 说明 |
---|---|---|---|---|
and(且 x and y) | True | True | True | 只有x和y的值都为True,才会返回True,否则只要x或者y值有一个为False,就返回False |
True | False | False | ||
False | True | False | ||
False | False | False | ||
or(或 x or y) | True | True | True | 只要 x 或者 y 有一个值为 True,就返回 True,只有 x 和 y 的值都为 False,才会返回 False |
True | False | True | ||
False | True | True | ||
False | False | False | ||
not(否not x) | True | ----- | False | 如果 x 为 True,返回 False,如果 x 为 False,返回 True |
False | ---- | True |
num = 12
result = (num%3==0)and(num%4==0) #result输出True
result = (num%3==0)or(num%5==0) #result输出True
num1 = '422'
num2 = 422
not num1 !=num2 # False,因为’num1 != num2‘成立,所以结果为True,但经过not 运算得到取反结果最终以False输出
not num1 ==num2 #True
5.1优先级问题
not > and > or
x = True
y = True
z = False
x and y
y and z
x or z
not x and y
x or y and z
算数运算符>关系运算符>逻辑运算符
06.测验
1.22 % 3的表达式输出结果为?
1.7
2.1
3.0
4.5
2.9//2 表达式输出结果为?
1.1
2.2
3.3
4.4
// 用于向下取接近除数的整数。
3.如果表达式的操作符有相同的优先级,则运算规则是?
1.左到右
2.右到左
3.看心情