博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 运算符和表达式
阅读量:261 次
发布时间:2019-03-01

本文共 2333 字,大约阅读时间需要 7 分钟。

作者:billy

版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

运算符

运算符是一些特殊的符号,主要用于科学计算、比较大小和逻辑运算等。Python 中的运算符主要包括算术运算符、赋值运算符、比较运算符、逻辑运算符和位运算符。使用运算符将不同类型的数据按照一定的规则连接起来的式子,称之为表达式。下面我们学习一下最常用的一些运算符。

  1. 算术运算符
    算术运算符是处理四则运算的符号,在数字的处理中应用得最多。常用的算术运算符如下表所示:
运算符 说明 举例 结果
+ 12.45 + 15 27.45
- 4.56 - 0.26 4.3
* 5 * 3.6 18.0
/ 7 / 2 3.5
% 求余,即返回除法的余数 7 % 2 1
// 取整数,即返回商的整数部分 7 // 2 3
** 幂,即返回 x 的 y 次方 2 ** 4 16,即 2^4

注意事项:

  • 使用 % 求余时,如果除数(第二个操作数)是负数,那么取得的结果也是一个负值
  • 使用除法(/ 或 //)运算符和求余运算符时,除数不能为 0,否则将出现异常
  • 使用除法运算符,在 Python 2.x 中,如果操作数都是整数,那么结果也将取整数,而在 Python 3.x 中,结果为浮点数
  1. 赋值运算符
    赋值运算符主要用来为变量等赋值。常用的赋值运算符如下表所示:
运算符 说明 举例 展开形式
= 简单的赋值运算 x = y x = y
+= 加赋值 x += y x = x + y
-= 减赋值 x -= y x = x - y
*= 乘赋值 x *= y x = x * y
/= 除赋值 x /= y x = x / y
%= 取余数赋值 x %= y x = x % y
**= 幂赋值 x **= y x = x ** y
//= 最整除赋值 x //= y x = x // y
  1. 比较(关系)运算符
    比较运算符,也成关系运算符,用于对变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则返回 True,如果为假,则返回 False。常用的比较运算符如下表所示:
运算符 作用 举例 结果
> 大于 ‘a’ > ‘b’ False
< 小于 156 < 456 True
== 等于 ‘c’ == ‘c’ True
!= 不等于 ‘y’ != ‘t’ True
>= 大于等于 479 >= 426 True
<= 小于等于 62.45 <= 45.5 False
  1. 逻辑运算符
    逻辑运算符是对真和假两种布尔值进行运算,运算后的结果仍是一个布尔值。常用的逻辑运算符如下表所示:
运算符 含义 用法 结合方向
and 逻辑与 op1 and op2 左到右
or 逻辑或 op1 or op2 左到右
not 逻辑非 not op 右到左
  1. 位运算符
    位运算符是把数字看做二进制数来进行计算的,因此需要先将要执行运算的数据转换为二进制,然后才能执行运算。常用的位运算符如下表所示:
运算符 运算法则
“按位与” 运算 ‘&’ 两个操作数的二进制表示,只有对应位都是 1 时,结果位才是 1,否则为 0。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同;
“按位或” 运算 ‘|’ 两个操作数的二进制表示,只有对应位都是 0 时,结果位才是 0,否则为 1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同;
“按位异或” 运算 ‘^’ 当两个操作数的二进制表示相同(同为 0 或者同为 1)时,结果为 0,否则为 1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同;
“按位取反” 运算 ‘~’ 将操作数对应二进制中的 1 改为 0,0 改为 1;
左移位运算符 ‘<<’ 将一个二进制操作数向左移动指定的位数,左边(高端位)溢出的位被丢弃,右边(低端位)的空位用 0 补充。左移运算符相当于乘以 2 的 n 次方;
右移位运算符 ‘>>’ 将一个二进制操作数向右移动指定的位数,右边(低端位)溢出的位被丢弃,而在填充左边(高端位)的空位时,如果最高位是 0(正数),左侧空位填入 0,如果最高位是 1(负数),左侧高位填入 1。右移运算符相当于除以 2 的 n 次方;

由于移位运算符的速度特别快,所以在程序中遇到表达式乘以或除以 2 的 n 次方的情况时,一般采用位移运算符来代替

  1. 运算符的优先级
    所谓运算符的优先级,是指在应用中哪一个运算符先计算,哪一个后计算,与数学中的四则运算口诀 “先乘除,后加减” 是一个道理。同一优先级的操作符按照从左到右的顺序进行,如果使用了小括号,则括号内的运算做先执行。运算符的优先级如下表所示:
类型 说明 优先级
**
~、+、- 取反、正号、负号
*、/、%、// 算术运算符
+、- 算术运算符
<<、>> 位移运算符中的左移和右移
& 位移运算符中的按位与
^ 位移运算符中的按位异或
| 位移运算符中的按位或
<、<=、>、>=、!=、== 比较运算符

当表达式中运算符较多时,应该使用括号 ‘()’ 来限定运行次序,避免运算符发生错误

条件表达式

在程序开发时,经常会根据表达式的结果有条件的进行赋值。

示例:

a = 10b = 6if a > b:    r = aelse:    r = b

上面这个例子可以使用条件表达式进行简化

a = 10b = 6r = a if a > b else b

条件表达式的规则:先计算中间的条件 (a > b) ,如果结果为 True,返回 if 语句左边的值,否则返回 else 右边的值

更多请参考

你可能感兴趣的文章