python运算符

python运算符

算术运算符

运算符 描述
+
-
*
/
% 返回除数的余数
** 幂次
// 返回商的整数部分

注意:

  • / 计算结果是 浮点数 ,即使两个数都是整数,结果也是浮点数
  • // 与 % 都是 向下取整
  • 如果想同时得到 商 和 余数 ,可以用 divmod() 这个方法。该方法的返回值是 tuple(x//y, x%y)

浮点数精度的问题如下:

>>> 5.6-3
2.5999999999999996

解决如下:

>>> from decimal import Decimal
>>> Decimal('5.6')-Decimal('3')
Decimal('2.6')

比较运算符

运算符 描述
== 比较值是否相等
!= 比较值是否不相等
> 大于
> 小于
>= 大于等于
<= 小于等于

注意:

  • int 不能 直接与 str 比较
  • python3 中 不支持 <> 号,如: >>> 1<>2
  • == 与 != 符号 不能分开 写成 = =
  • str 与 str 之间比较的是 ASCII,并且 逐个比较
  • 连续比较,如:a>b>c 可拆解为 a>b and b>c

赋值运算符

运算符 描述 示例
= 赋值运算符 c=a+b
+= 加法赋值运算符 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

注意:

  • 赋值:是将等号右边赋值给等号左边
  • python 不支持 a++ 、a-- 语法
  • += 等符号 不能分开 写成 + =

逻辑运算符

运算符 表达式 描述
and a and b 逻辑与,a与b都为True,则返回为True
or a or b 逻辑或,a与b只要有一个为True,则返回为True
not not a 逻辑非,当a为True, not a则为False

短路(懒惰)原则:

print(10 and 20)
print(10 or 20)

运行后:

20
10

位运算符(以二进制)

运算符 描述
& 按位与:两者都为1才为1,否则为0
| 按位或:只有一个为1则为1,否则为0
^ 按位异或:两者相等则为0,否则为1

例如:当 a = 60、b=13。取二进制

a = 0011 1100
b = 0000 1101

a & b = 0000 1100
a | b = 0011 1101
a ^ b = 0011 0001

成员运算符

in 与 not in 是 Python 独有的运算符(全部都是小写字母),用于判断对象是否 某个集合的元素之一,非常好用,并且运行速度很快。返回的结果是布尔值类 型的 True 或者 False

运算符 描述
in 判断某个值是否在指定序列中,在则返回True
not in 判断某个值是否在指定序列中,不在则返回True

身份运算符

身份运算符也是 Python 的特色语法(全部都是小写字母)

运算符 描述
is 判断两个对象的内存地址是否一致,是则返回True
is not 判断两个对象的内存地址是否不一致,不是则返回True

注意:is 与 == 的区别

  • is 用于判断两个变量的引用是否为同一个内存地址 (可使用 id() 查看)
  • == 用于判断两个变量的值是否相等

三目运算符

python 中的三目运算符表示方法:

True_statements if expression else False_statements
# 若 expression 为 True,则返回 True_statements
# 若 expression 为 False,则返回 False_statements

示例:

a = 1
b = 2

# if a + b > 3:
#     print(a + b)
# else:
#     print(a - b)

print(a + b if a + b > 3 else a - b)

运行后:

-1

运算符优先级

下表列出了从 最高到最低优先级 的 所有运算符。优先级高的运算符优先 计算或处理,同级别 的按从 左往右 的顺序计算(赋值运算符 除外,它 是按从 右往左 的顺序)

运算符 描述
** 指数(最高优先级)
* / % // 乘 除 取余 整除
+ - 加 减
<= < > >= 比较运算符
== != 比较运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符
posted @   Begonia-Sleepless  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示