当前位置: 首页 > article >正文

python中的各类比较与计算

运算符

      • 1.算数运算符
      • 2.关系运算符
      • 3.逻辑运算符
      • 4.关于短路求值
      • 5.赋值运算符
        • 1)`=`的使用
          • 链式赋值
          • 多元赋值
        • 2)复合赋值运算符
      • 6.位运算符
      • 7.成员运算符
      • 8.身份运算符

1.算数运算符

# 加
print(1 + 2)
# 减
print(2 - 1)
# 乘
print(1 * 2)
# 余数   4%3=1余数为1
print(4 % 3)
# 除
print(4 // 2)
# 平方
print(4 ** 2)

在这里插入图片描述

2.关系运算符

a = 10
b = 20
# 小于
print(a < b)
# 大于
print(a > b)
# 大于等于
print(a >= b)
#小于等于
print(a <= b)
# 等于
print(a == b)
# 不等于
print(a != b)

在这里插入图片描述

不仅如此,这些算数运算符还可以对字符串进行比较。

在这里插入图片描述

这种比较的方法是在字典中排序而比较的,在字典中,排序越靠后的字符串越大,而在这里hi明显要比hello后出现,所以这里b是大于a的。

浮点数比较

注意,一般不会使用==对浮点数进行比较,因为浮点数在计算机中不是精准的,在计算过程中,很容易出现小误差。

print(0.1)
print(0.2)
print(0.3)
print(0.1+0.2)
print(0.1 + 0.2 == 0.3)

在这里插入图片描述

3.逻辑运算符

多数用于判断或循环中。

a = True
b = False
c = True
# and 与
if a and c:
    print("a和c都为true")
# or 或
if a or b:
    print("a和b有一个为true")
# not 非
if not b:
    print("b不为true")

在这里插入图片描述

一种特殊写法

在python中可以使用a<b<c,相当于a<b and b<c。这个设定与大部分的编程语言不相同。

4.关于短路求值

和其他编程语言类似,也存在短路求职的规则。

对于and,如果左侧表达式为False,则不再继续向下求职,所以即使第二条件非法也对结果无影响。

if 10>20 and 10//0>1:
    print("两个表达式都正确")
else:
    print("计算首表达式错误")

在这里插入图片描述

对于or如果左侧表达式为True,则不再计算右侧表达式的正确性。

if 10>0 or 10//0>0:
    print("有一个表达式正确")
else:
    print("两个表达式都错误")

在这里插入图片描述

5.赋值运算符

1)=的使用

表示赋值,与==不同,不仅有基础语法,还可以对多个变量进行赋值。

链式赋值
a = b = 10
多元赋值
a,b,c=10,20,30

使用多元赋值可以对交换变量进行改写:

# 普通交换两个变量
temp = a
a = b
b = temp
# 改写好的交换变量
a,b = b,a
2)复合赋值运算符

+= -= *= /= %= **= //=

+=举个例子:a += 1相当于a = a + 1,将计算的值重新赋值给a,其他复合运算符也是同理。

a = 10
a = a + 1
print(f"a={a}")
b = 10
b += 1
print(f"b={b}")

在这里插入图片描述

注意:在python中没有++ --操作,如果需要使用+=1 -=1代替即可。

6.位运算符

|:按位或

&:按位与

^:按位异或

~:按位取反

<<:按位左移

>>:按位右移

以上位操作符与其他计算机语言一致都是将数字转化为二进制数字计算。

a = 60  # 0011 1100
b = 5  # 0000 0101
print(a & b)  # 0000 0100  => 4
print(a | b)  # 0011 1101  => 61
print(a ^ b)  # 0011 1001  =>57
print(~b)     # 1111 1010  =>
print(b << 1)  # 0000 1010  =>10
print(b >> 1)  # 0000 0010  =>2

在这里插入图片描述

7.成员运算符

in:在指定的序列中找到值返回 True,否则返回 False

not in:在指定序列中找不到返回True,否则返回False

a = [1,2,3,4,5]
b = "hello"
c = 5
print(c in a)
print(b not in a)

在这里插入图片描述

8.身份运算符

is: 判断两个标识符是不是引用自一个对象

is not:判断两个标识符是不是引用自不同对象

a = 20
b = 20
c = 30
print(a is b)
print(a is not c)

在这里插入图片描述
注意:这里的is==是不同的,is是用于比较两个对象是否指向同一个,而==只是单纯判断值是否相同。


http://www.kler.cn/news/308649.html

相关文章:

  • Android14 蓝牙 BluetoothService 启动和相关代码介绍
  • 【Vue】- 生命周期和数据请求案例分析
  • phpstudy 建站使用 php8版本打开 phpMyAdmin后台出现网页提示致命错误:(phpMyAdmin这是版本问题导致的)
  • k8s中的存储
  • 【设计模式-外观】
  • 【计算机网络 - 基础问题】每日 3 题(七)
  • 【编译原理】看书笔记
  • keep-alive缓存不了iframe
  • 快速开发与维护:探索 AndroidAnnotations
  • Edegex Foundry docker和源码安装
  • uniapp与webview进行数据通信
  • 每个电脑都有ip地址吗?不同电脑ip地址一样吗
  • 爬虫代理失效怎么处理?全面解决方案
  • 【智路】智路OS 设备接入开发
  • 力扣122.-买卖股票的最佳时机 II(Java详细题解)
  • Python数据分析 Pandas基本操作
  • .NET 6.0 + WPF 使用 Prism 框架实现导航
  • Linux下编译Kratos
  • 如何动态获取路由上的参数
  • 最短路径算法
  • 详解QT元对象系统用法
  • webpack原理简述
  • java实现真值表代码(不完善)恳求大佬指导
  • 利用AI驱动智能BI数据可视化-深度评测Amazon Quicksight(三)
  • 使用 Visual Studio Code 配置 C++ 开发环境的详细指南
  • sqlx1.3.4版本的问题
  • 【MySQL】Windows下重启MySQL服务时,报错:服务名无效
  • 语言模型与人类反馈的深度融合:Chain of Hindsight技术
  • 主流日志框架Logback与Log4j2
  • 【TS】TypeScript配置详解【三】