一、Python中的运算符
1、表达式和语句
(1)表达式:是由运算符和操作数组成的。也可以说是能够表达出一定结果的式子。
(2)语句是指的是一段可执行的代码,表示的是一个动作而不是生成或者返回一个值。
(3)区别:
表达式:能够表达出一定结果的式子,表示的是一个结果
语句:指的是一段可执行的代码,表示的是一个动作/命令
注意:表达式不一定是一条语句,但一条语句中可以包含表达式。
2、运算符的分类
算术运算符、比较运算符、复合赋值运算符、逻辑运算符
(1)算术运算符:判断奇偶数
运算符 | 说明 | 示例 |
+ | 执行加法运算(如果两个操作数是字符串,则该运算符用作字符串连接运算符,将一个字符串添加到另一个字符串的末尾) | a=1 b=2 c=a+b |
- | 执行减法运算 | c= a – b |
* | 执行乘法运算 | c =a * b |
/ | 执行除法运算 | c=a / b |
% | 获得进行除法运算后的余数 | c=a % b |
// | 取整除 - 返回商的整数部分(向下取整) | 9//2 结果:4 |
** | 幂 - 返回x的y次幂 | a**b;表示a的b次幂 |
(2)比较运算符:比较结果是否为布尔类型
①比较运算通常用于比两个数或两个表达式的大小,比较的结果是布尔类型,要么是True要么是False。
运算符 | 说明 | 示例 |
> | 判断一个数是否大于另一个数 | 变量1 > 变量2 |
< | 判断一个数是否小于另一个数 | 变量1 <变量2 |
>= | 判断一个数是否大于或等于另一个数 | 变量1 >=变量2 |
<= | 判断一个数是否小于或等于另一个数 | 变量1 <=变量2 |
== | 判断两个值是否相等 | 变量1 ==变量2 |
!= | 判断两个值是否不相等 | 变量1 != 变量2 |
②使用 比较运算符 可以比较高低、大小、长短
注意!!!
“=” 与 “==”的区别:
“=” 表示赋值 把右边的值赋值给左边
“==” 表示比较运算符等于
(3)复合赋值运算符
运算符 | 说明 | 示例 |
= | 简单的赋值运算符 | 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 |
(4)逻辑运算符
①逻辑运算符可以将两个或多个关系表达式连接成一个或使表达式的逻辑反转,从而得出最终一个结果
②以下假设变量 a 为 10, b为 20:
运算符 | 逻辑表达式 | 说明 | 示例 |
and | x and y | 逻辑"与" ,如果 x 为 False,x and y 返 回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 逻辑"或",如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10 |
not | not x | 逻辑"非" ,如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
提示:逻辑运算符的运算结果也可以是布尔类型的,经常与比较运算符结合使用
and(一假即假) or(一真即真) not(真即假 假即真)
x | y | x and y | x or y | not x | |
x和y均为关系表达式 | True | True | True | True | False |
True | False | False | True | False | |
False | True | False | True | True | |
False | False | False | False | True | |
x 和 y 均为数字 | 0 | 非0数字 | 0 | 非0数字 | True |
非0数字 | 0 | 0 | 非0数字 | False | |
非0数字 | 非0数字 | y | 非0数字 | False | |
0 | 0 | 0 | 0 | True |
二、运算符的优先级
运算原则:优先级高的运算先执行,优先级低的运算后执行,同一优先级的操作按照从左到右的顺序执行
运算符 | 描述 |
** | 幂运算(最高优先级) |
*、/、%、// | 乘、除、取余、取整除 |
+、- | 加、减 |
<=、 <、 >、 >= | 比较运算符 |
==、!= | 等于、不等于 |
= 、%=、 /=、 //=、 -=、 +=、 *=、 **= | 复合赋值运算符 |
not 、and 、or | 逻辑运算符 |
特别说明:可以使用 “ ( ) ” 改变优先级
三、转义字符
1、常用:\" 双引号 print(" a \"b \"c")
\n 换行符 print('a \n b')
\t 水平制表符 print(' a \t b')
2、字符串操作:
in 判断字符串包含关系 'a' in 'abcd' → True
空格 以空格分隔的字符串自动合并 'a' 'b' 'c' → 'abc'
加号 将多个字符串合并 'a' + 'b' + 'c' → 'abc'
星号 字符串重复输出 'a' * 5 → 'aaaaa'
3、字符串索引:
可以通过索引去查,但是不能修改
z = 'abcdefg'
索引号从左到右 z[0] - z[6] 从右到左 z[-1] - z[-7]
字符串长度:len(X)
4、字符串切片:
获取某一个区间的多个字符
x[start:end] 从start(包括)开始到end(不包括)之前结束
x[start:] 从start开始,一直到最后、
x[:end] 从开头开始,到end(不包括)之前结束
x[:] 返回全部字符