运算
运算
一、算术运算符
| 名称 | 数学中的运算符 | Python中的运算符 | 在Python中的作用 |
|---|---|---|---|
| 加 | + | + | 把两个对象相加 |
| 减 | - | - | 把两个对象相减 |
| 乘 | × | * | 把两个数相乘或是返回一个被重复若干次的字符串 |
| 除 | ÷ | / | 把两个对象相除,商是小数(最少都会保留一位小数) |
| 取整数 | // | 取两个数相除的商(整数) | |
| 取模(取余数) | % | 取两个数相除的余数 | |
| 幂 | ** | 取x的n次方的结果 |
print(5+2) # 输出7
print(5-2) # 输出3
print(5*2) # 输出10
print(5/2) # 输出2.5
print(5//2) # 输出2
print(5%2) # 输出1
print(5**2) # 输出25
注意点:
- Pyhton中的加和乘可以用于字符串类型运算,但是其他运算符不能用于字符串类型
- 算术运算符的运算规则和顺序是和数学中的四则混合运算的规则和顺序是一致的
- 取整数(//)是向下取整,不是四舍五入,也可以理解为去掉余数
- 取模(%)是取两个数相除的余数,如果能整除,则取模结果为0
二、赋值运算符
| 运算符 | 描述 | 举例 | 作用 |
|---|---|---|---|
| = | 最常见的数学赋值运算 | a = 5 | 把5赋值给a |
| += | 加法赋值运算符 | a += b | 相当于a = a + b |
| -= | 减法赋值运算符 | a -= b | 相当于a = a - b |
| *= | 乘法赋值运算符 | a *= b | 相当于a = a * b |
| /= | 除法赋值运算符 | a /= b | 相当于a = a / b |
| %= | 取模赋值运算符 | a %= b | 相当于a = a % b |
| **= | 幂赋值运算符 | a **= b | 相当于a = a ** b |
| //= | 取整数赋值运算符 | a //= b | 相当于a = a // b |
除了等号(=)运算符,剩余的运算符都是相应算术运算符的简写
三、比较运算符
比较运算符用于对常量、变量或者表达式的结果进行大小比较,如果这种比较是成立的,则返回True(真)、反之则返回False(假)
| 比较运算符 | 名称 | 说明 |
|---|---|---|
| > | 大于 | 若 a > b 成立,则返回True,否则返回False |
| < | 小于 | 若 a < b 成立,则返回True,否则返回False |
| == | 等于 | 若 a = b 成立,则返回True,否则返回False |
| >= | 大于等于 | 若 a>b或a = b 成立,则返回True,否则返回False |
| </ | 小于等于 | 若 a<b或a = b 成立,则返回True,否则返回False |
| != | 不等于 | 若 a = b 不成立,则返回True,否则返回False |
| is | 是 | a和b是否引用同一对象,若是则返回True,否则返回False |
| is not | 不是 | a和b是否引用不同对象,若是则返回True,否则返回False |
注意点:
-
不能将 == 误写为 =
-
== 和 is 不同,== 是判断两个变量的值是否相等,而 is 则是判断两个边路是否引用同一对象
# a 和 b 引用对象不同 a = [5,2] b = [5,2] print(a == b) # 返回True print(a is b) # 返回False # a 和 b 引用对象相同 a = b = [5,2] print(a is b) # 返回True -
在Python中,0和空都是False其余都是True
四、逻辑运算符
| 逻辑运算符 | 名称 | 描述 |
|---|---|---|
| and | 与 | 等价于数学中的 “且” |
| or | 或 | 等价于数学中的 “或” |
| not | 非 | 等价于数学中的 “非” |
注意点:
-
and是 “逻辑与”,它是False惰性求值,所以只要前面的值是False,则不需要看后面的值;它的执行逻辑是 一假则假,全真才真
-
or是 “逻辑或”,它是True惰性求值,所以只要前面的值是True,则不需要看后面的值; 一真则真,全假才假
-
not是 “逻辑非”,它的执行逻辑是 结果与原操作数相反
-
Python的逻辑运算 or和and 返回的值,只有前后运算中的结果确实是True时才返回True
a = 20 b = 3 print(a and b) # 返回20 print(a or b) # 返回20 print(a>b and a!=b) # 返回True print(a>b or a<b) # 返回True
五、运算符优先级
所谓优先级,就是当多个运算符同时出现在一个表达式中时,先执行哪个运算符。
Python运算符优先级如下表:(括号 > 算术运算符 > 比较运算符 > 逻辑运算符)
| 运算符说明 | Pyhton运算符 | 优先级 |
|---|---|---|
| 小括号 | () | 8 |
| 乘方 | ** | 7 |
| 乘除 | *、/、//、% | 6 |
| 加减 | +、- | 5 |
| 比较运算符 | ==、!=、>、>=、<、<= | 4 |
| 逻辑非 | not | 3 |
| 逻辑与 | and | 2 |
| 逻辑或 | or | 1 |
注意点:
- 同一级别运算符属于左结合性(即先算左边的)
- 幂(**)、逻辑非(not)属于右结合性(即先算右边的)
练习:
(一)单选题
-
下列代码运行的结果是?()
a=0 b=False print(a==b)A.0; B.False; C.True; D.error
-
执行语句x,y=9%5,8//3后,变量x、y的值分别为?()
A.1.8、2; B.1、2.6666; C.4、2; D.1、2;
-
a=2,b=3,那么 c=a**b运算的结果是?()
A.6; B.8; C.9; D.23;
-
执行以下代码结果应该是?()
a=123 print(a%100%10)A.1; B.2; C.3; D.1.23;
-
a=5;print('a+4') 以上代码的结果是?()
A.9; B.'a+4'; C.无结果; D.a+4;
-
执行下列语句后的显示结果是什么?()
b=2*a/4 a=1 print(a,b)A.1, 0.5; B.1, 0; C.报错; D.0, 1;
-
print(6+8/2)输出的结果是?()
A.7; B.10.0; C.10; D.6+8/2;
-
print(4+8//2)的输出结果是?()
A.6; B.6.0; C.8; D.8.0;
-
已知变量a=5,执行下列哪个代码后,a的值为10?()
A.a>=a+5; B.a+=5; C.a==5; D.a*=5;
-
print(12.34-1.34)的输出结果是?()
A.11; B.11.0; C.11.00; D.12.34-1.34;
-
已知变量a=2,b=3,执行语句 a%=a**b后,变量a的值为?()
A.0; B.2; C.3; D.12;
-
要抽出一个三位数的个位上的数字,如三位数479,可以输入以下哪个代码,可以获得其中的个位数上的9?()
A.print(479%10//10)
B.print(479%10%10)
C.print(479//10//10)
D.print(479//10%10)
-
输入一个整数6,输出的结果为?()
a=input('输入一个整数') b=a*4 print(b)A.24; B.6; C.6666; D.4;
-
Python中的==代表的是?()
A.左边的值赋值给右边
B.右边的值赋值给左边
C.比较左右两边是否相等
D.左右两边值进行交换
-
下列哪个符号可以用来修改变量的值?()
A.>=; B.<=; C.==; D.=
-
执行语句print(10==10.0)的结果是?()
A.10; B.10.0; C.True; D.False;
-
已知a-2,b=3,执行 a*=b+5后,a的值是多少?()
A.11; B.16; C.13; D.26
-
假设a=20,b=3,那么 a or b 的结果是?()
A.20; B.0; C.1; D.3;
-
下面表达式的值为True的是?()
A.‘a’>'b'; B.2>3; C.'A'>'a'; D.'3'>'2'
-
假设a=0,b=10,那么 a and b 的结果是?()
A.1; B.10; C.11; D.0;
-
下列运算中,运算结果为 True 的是?()
A.2>3 and 3>2; B.4!=0 and 3+2>=5; C.3**2<8 or 3+2<5; D.not 20>=20;
-
执行print(3>2 or 4<5)的结果是?()
A.1; B.0; C.True; D.False;
-
下列程序执行的结果是?()
print(2*3>4*2 or "121">"12" and 7%3==4%3)A.False; B.True; C.3; D.4;
-
逻辑运算符中,优先级最高的是?()
A.or; B.and; C.not; D.**;
-
下列程序执行的结果是?()
print(1<2 and 3<2 and 'a'!='a' or not 2+3>=6)A.False; B.True; C.2; D.1;
-
print(3>4or4)的结果是?()
A.False; B.True; C.3; D.4
-
与 a>b and b>c 等价的是?()
A.a>b or b>c; B.a>b>c; C.a>b or not b; D.not a
-
将4、5、6三个数不重复的排列为三位数,有几种排列?
A.3; B.6; C.9; D.2
-
同学们排队做操,按名单顺序,每10个人一排,要问第n个人是第几排,下列哪一种方法可以得出结果?()
A.n//10
B.n%10
C.(n-1)//10+1
D.(n-1)%10+1
(二)判断题
- 输入print(7//2),输出结果为 3.0。( )
- one,two,three='1',3,5;print(one+two+three)运行结果是9。( )
- 语句m+=n的意义是m=m+n。( )

浙公网安备 33010602011771号