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

Python-计算机中的码制以及基础运算符(用于分析内存)

记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化

python基础2-码制

    • 计算机中的码制
      • 原码(True Form)
      • 反码(One's Complement)
      • 补码(Two's Complement)
    • 基础运算
      • 算术运算符:
      • 比较运算符:
      • 赋值运算符:
      • 逻辑运算符:
      • 位运算符(用于二进制位的操作):
          • 按位与:&
          • 按位或:|
          • 按位异或:^
          • 按位非:~
          • 左移:<<
          • 右移:>>
      • 成员运算符:
          • 属于:in(检查列表、元组、集合或字符串中是否存在某个元素)
          • 检查元素是否存在于列表中
          • 检查字符串中是否包含子串
          • 不属于:not in(检查列表、元组、集合或字符串中是否不存在某个元素)
          • 检查元素是否不存在于元组中
      • 身份运算符:
          • 恒等:is(检查两个引用是否指向同一个对象)
          • 比较两个变量是否引用同一个对象
          • 不恒等:is not(检查两个引用是否不指向同一个对象)
          • 检查两个变量是否引用不同的对象
          • 在Python中,字符串是不可变对象,所以相同的字符串字面量可能会引用同一个对象
      • 运算符优先级别
      • 逻辑与(and)短路
        • 逻辑或(or)短路
        • 逻辑或短路示例
        • 组合逻辑运算
        • 检查变量是否为正数
    • 实践是检验真理的唯一标准

计算机中的码制

原码、反码和补码是计算机科学中用于表示整数的二进制编码方式,特别是在处理有符号整数时。这些概念主要用于简化计算机中的算术运算,尤其是在进行加减法时。

原码(True Form)

定义:原码是一种最直观的二进制编码方式,它用第一位表示符号(0表示正,1表示负),其余位表示数值本身。
优点:易于理解和转换,直接反映了数值的正负和大小。
缺点:在进行加减运算时较为复杂,因为需要特别处理符号位。
示例:

十进制的 +5 在原码中表示为 0000101(假设使用5位,最左边的位是符号位)。
十进制的 -5 在原码中表示为 1000101。

反码(One’s Complement)

定义:反码用于表示有符号数的一种方式,正数的反码与其原码相同,负数的反码是其原码除符号位外,其他各位取反(0变1,1变0)。
优点:简化了减法运算,可以通过将减数取反然后加1,转换为加法运算。
缺点:0的表示不唯一,正0和负0的反码不同,这可能导致一些混淆。
示例:

十进制的 +5 在反码中表示为 0000101。
十进制的 -5 在反码中表示为 1111010。

补码(Two’s Complement)

定义:补码是目前最常用的有符号数表示方式,正数的补码与其原码相同,负数的补码是在其反码的基础上加1。
优点:
0的唯一性,没有正0和负0的区别。
简化了算术运算,特别是减法可以直接转换为加法。
溢出检测简单,可以通过检查结果是否越界来判断。
缺点:对初学者来说,理解补码表示的负数可能不如原码直观。
示例:

十进制的 +5 在补码中表示为 0000101。
十进制的 -5 在补码中表示为 1111011。
码制这个东西了解即可,如果大家有一天可以接触到内存溢出并且需要实时监控二进制时,你已经是一个大佬了,可以分析任何软件的性能做出优化等,其实很多库自带检查内存,比去找某个变量对的进程值快的多,记住:用轮子往往比造轮子简单且有效,但创造往往更有价值和意义
注意点:补码补码是原码,计算机中所有的数据都是用补码二进制标识,如果需要转换成十进制,需要先把补码转换成原码,最后把原码的二进制转换为十进制即可。

基础运算

算术运算符:

加法:+
减法:-
乘法:*
除法:/
地板除法://(结果向下取整)
模运算(求余数):%
幂运算:**

比较运算符:

等于:==
不等于:!=
大于:>
小于:<
大于等于:>=
小于等于:<=

赋值运算符:

单赋值:=
同时赋值:a = b = 0(Python 3.8+)
加法赋值:+=
减法赋值:-=
乘法赋值:*=
除法赋值:/=
地板除法赋值://=
模运算赋值:%=
幂运算赋值:**=

逻辑运算符:

逻辑与:and
逻辑或:or
逻辑非:not

位运算符(用于二进制位的操作):

按位与:&
A = 60
B = 13
result = A & B
print(result)  # 输出结果为12
按位或:|
A = 60
B = 13
result = A | B
print(result)  # 输出结果为61
按位异或:^
A = 60
B = 13
result = A ^ B
print(result)  # 输出结果为49
按位非:~
A = 60
result = ~A
print(result)  # 输出结果为-61
左移:<<
A = 60
shift_amount = 2
result = A << shift_amount
print(result)  # 输出结果为240
右移:>>
A = 60
shift_amount = 2
result = A >> shift_amount
print(result)  # 输出结果为15

成员运算符:

属于:in(检查列表、元组、集合或字符串中是否存在某个元素)
检查元素是否存在于列表中
my_list = [1, 2, 3, 4, 5]
element = 3if element in my_list:print(f"{element} is in the list.")
else:print(f"{element} is not in the list.")
检查字符串中是否包含子串
my_string = "Hello, World!"
substring = "World"if substring in my_string:print(f'"{substring}" is in the string.')
else:print(f'"{substring}" is not in the string.')
不属于:not in(检查列表、元组、集合或字符串中是否不存在某个元素)
检查元素是否不存在于元组中
my_tuple = (10, 20, 30, 40)
element = 50if element not in my_tuple:print(f"{element} is not in the tuple.")
else:print(f"{element} is in the tuple.")
##### 检查集合中是否不包含某个元素
my_set = {1, 2, 3, 4, 5}
element = 6if element not in my_set:print(f"{element} is not in the set.")
else:print(f"{element} is in the set.")

身份运算符:

恒等:is(检查两个引用是否指向同一个对象)
比较两个变量是否引用同一个对象
a = [1, 2, 3]
b = a  # b现在引用列表a
c = [1, 2, 3]  # c是一个新的列表对象print(a is b)  # 输出 True,因为a和b引用同一个对象
print(a is c)  # 输出 False,因为a和c引用不同的对象
不恒等:is not(检查两个引用是否不指向同一个对象)
检查两个变量是否引用不同的对象
a = "hello"
b = "hello"
在Python中,字符串是不可变对象,所以相同的字符串字面量可能会引用同一个对象
print(a is b)  # 可能输出 True,因为a和b可能引用同一个字符串对象c = "world"
print(a is not c)  # 输出 True,因为a和c引用不同的对象

运算符优先级别

Python中的运算符优先级如下(从高到低):
括号 ((), [], {}):改变运算顺序。
指数 (**):幂运算。
一元运算符:如负号 - 和逻辑非 not。
乘法和除法 (*, /, //, %):从左到右执行。
加法和减法 (+, -):从左到右执行。
比较运算符 (<, <=, >, >=, !=, ==):从左到右执行。
身份运算符 (is, is not):从左到右执行。
位运算符:按位与 &、按位或 |、按位异或 ^、左移 <<、右移 >>。
逻辑运算符:逻辑与 and、逻辑或 or。

逻辑与(and)短路

对于逻辑与操作,如果第一个操作数是假的(False),那么整个表达式的结果必定为假,因此第二个操作数不会被求值。

#### 定义一个函数,如果被调用,会抛出异常
def will_fail():raise Exception("Something went wrong")#### 逻辑与短路示例
try:False and will_fail()  # 这行代码不会抛出异常
except Exception as e:print(e)  # 这行代码不会被执行print("Expression evaluated.")  # 这行代码会被执行
逻辑或(or)短路

对于逻辑或操作,如果第一个操作数是真的(True) ,那么整个表达式的结果必定为真,因此第二个操作数不会被求值。

#### 定义一个函数,如果被调用,会抛出异常
def will_fail():raise Exception("Something went wrong")
逻辑或短路示例

try:
True or will_fail() # 这行代码不会抛出异常
except Exception as e:
print(e) # 这行代码不会被执行

print(“Expression evaluated.”) # 这行代码会被执行

```csharp
#### 逻辑非(not)短路# 逻辑非示例
result = not False  # result为True
组合逻辑运算
a = True
b = False
c = True#### 这个表达式相当于 (a and b) or c
result1 = a and b or c  # 结果为True,因为c为True#### 使用括号改变运算顺序
result2 = (a and b) or c  # 结果为False,因为(a and b)True#### 另一个组合逻辑运算
result3 = not a and b  # 结果为False,因为not a为Falseprint(result1)  # 输出: True
print(result2)  # 输出: True
print(result3)  # 输出: False
检查变量是否为正数
x = 5
y = -3#### 逻辑表达式:x大于0且y小于0
is_positive_x = x > 0
is_negative_y = y < 0result = is_positive_x and is_negative_yprint(result)  # 输出: True#### 检查至少一个变量是正数
result = is_positive_x or is_negative_yprint(result)  # 输出: Truesd1 = 0
sd2 = "a"
sd3 = 1
#注意点:在and逻辑与运算中,判断第一个是否为false,不为则判断下一个,遇到都是true时返回第二个操作数为true的值
result4 = sd2 and sd3
#注意点:在and逻辑与运算中,判断第一个是否为true,不为则判断下一个,遇到true时返回第二个操作数为true的值
result6 = sd1 or sd2print(result4)
print(result6)

程序返回结果:

E:\Anaconda3\python.exe E:\Pycharm\pydemo\pythonProject\运算符优先级别.py 
Expression evaluated.
Expression evaluated.
True
True
False
True
True
1
a

我还是那句话,该说不说,用好逻辑运算符时及其重要的,实际开发中也有很多逻辑判断需要搭配if语句

实践是检验真理的唯一标准

相关文章:

Python-计算机中的码制以及基础运算符(用于分析内存)

记录python学习&#xff0c;直到学会基本的爬虫&#xff0c;使用python搭建接口自动化测试就算学会了&#xff0c;在进阶webui自动化&#xff0c;app自动化 python基础2-码制 计算机中的码制原码&#xff08;True Form&#xff09;反码&#xff08;Ones Complement&#xff09…...

yum 离线软件安装

适用范围 支持YUM软件管理的操作系统&#xff1a; 银河麒麟 服务器操作系统V10统信服务器操作系统V20CentOS 系列 准备 准备一台可以连接互联网并且与离线安装的操作系统相同版本的操作系统&#xff0c;包括指令集类型相同。 安装下载工具 查询是否已经安装下载工具 yum…...

【C语言】17. 数据在内存中的存储

文章目录 一、整数在内存中的存储二、⼤⼩端字节序和字节序判断1、什么是⼤⼩端&#xff1f;2、为什么有⼤⼩端?3、练习1&#xff09;练习12&#xff09;练习23&#xff09;练习34&#xff09;练习45&#xff09; 练习56&#xff09;练习6 三、浮点数在内存中的存储1、浮点数的…...

二叉树概述

目录 一、二叉树的基本结构 二、二叉树的遍历 1.前序 2.中序 3.后序 4.层序遍历 三.计算二叉树的相关参数 1.计算节点总个数 2.计算叶子节点的个数 3.计算树的高度 4.计算第k层的子树个数 5.查找树中val为x的节点 四.刷题 1.单值二叉树 2.检查两棵树是否相同 3.一…...

【开源免费】基于SpringBoot+Vue.JS图书进销存管理系统(JAVA毕业设计)

博主说明&#xff1a;本文项目编号 T 082 &#xff0c;文末自助获取源码 \color{red}{T082&#xff0c;文末自助获取源码} T082&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...

惠普M126a连接共享打印机故障0x000006ba,系统不支持请求的命令,print spooler重复停止

故障说明&#xff1a;直连惠普M126a打印机正常打印&#xff0c;通过共享连接的报故障。 目前已知有三种故障&#xff1a; 1、0x000006ba报错2、系统不支持请求的命令3、print spooler重复停止&#xff08;或者&#xff0c;print spooler没有停止依然报故障&#xff09; 解决方…...

Chainlit集成LlamaIndex实现一个通过用户聊天对话的酒店预定系统

Agent 简介 “Agent”是一个自动推理和决策引擎。它接受用户输入/查询,并为执行该查询做出内部决策,以便返回正确的结果。关键的代理组件可以包括但不限于: 把复杂的问题分解成小问题选择要使用的外部工具+调用工具的参数计划一系列的任务将以前完成的任务存储在内存模块中…...

计算机网络之网络层超详细讲解

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 计算机网络之网络层超详细讲解 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; …...

代码随想录算法训练营day51|动态规划part13

回文子串 回文子串这里的递推式不太一样&#xff0c;dp[i] 和 dp[i-1] &#xff0c;dp[i 1] 看上去都没啥关系。所以要回归到回文的定义 而我们发现&#xff0c;判断一个子字符串&#xff08;字符串下标范围[i,j]&#xff09;是否回文&#xff0c;依赖于&#xff0c;子字符串…...

ESP8266自制桌宠机器狗

看到别人的桌宠机器狗有没有想要拥有一台的冲动,其实我们可以使用少量的资金自制一台机器狗 1 硬件 esp8266芯片 舵机 超声波传感器 2 接线 ESP8266配件...

【力扣】409.最长回文串

问题描述 思路解析 因为同时包含大小写字母&#xff0c;直接创建个ASCII表大小的桶来标记又因为是要回文子串&#xff0c;所以偶数个数的一定可以那么同时&#xff0c;对于出现奇数次数的&#xff0c;我没需要他们的次数-1&#xff0c;变为偶数&#xff0c;并且可以标记出现过…...

git 拉取代码时报错 gitignore Please move or remove them before you merge.

git 拉取代码时报错&#xff0c; The following untracked working tree files would be overwritten by merge: .gitignore Please move or remove them before you merge. 当你在使用 Git 进行代码拉取&#xff08;通常是执行 git pull 或 git merge 命令&#xff09;时遇到这…...

19,[极客大挑战 2019]PHP1

这个好玩 看到备份网站字眼&#xff0c;用dirsearch扫描 在kali里打开 爆破出一个www.zip文件 访问一下 解压后是这个页面 class.php <?php include flag.php; error_reporting(0); class Name{ private $username nonono; private $password yesyes; publi…...

MQTT消息服务器mosquitto介绍及说明

Mosquitto是一个开源的消息代理软件&#xff0c;支持MQTT协议&#xff08;消息队列遥测传输协议&#xff09;。MQTT是一种轻量级的发布/订阅消息传输协议&#xff0c;专为低带宽、不可靠网络环境下的物联网设备通信而设计。以下是关于Mosquitto服务器的一些介绍和说明&#xff…...

uniapp结合movable-area与movable-view实现拖拽功能

前言 因为公司业务开发需要拖拽功能。 ps&#xff1a;该功能只能针对高度一致的&#xff0c;如果高度不一致需要另外二开 演示 开始 <template><view style"height: 100%;"><movable-area :style"{width: 100%, height: allHeight px}"…...

十九(GIT2)、token、黑马就业数据平台(页面访问控制(token)、首页统计数据、登录状态失效)、axios请求及响应拦截器、Git远程仓库

1. JWT介绍 JSON Web Token 是目前最为流行的跨域认证解决方案&#xff0c;本质就是一个包含信息的字符串。 如何获取&#xff1a;在使用 JWT 身份验证中&#xff0c;当用户使用其凭据成功登录时&#xff0c;将返回 JSON Web Token&#xff08;令牌&#xff09;。 作用&#xf…...

文生图模型开源之光!ComfyUI - AuraFlow本地部署教程

一、模型介绍 AuraFlow 是唯一一个真正开源的文生图模型&#xff0c;由Fal团队开源&#xff0c;其代码和权重都放在了 FOSS 许可证下。基于 6.8B 参数优化模型架构&#xff0c;采用最大更新参数化技术&#xff0c;还重新标注数据集提升指令遵循质量。在物体空间和色彩上有优势…...

spring boot之@Import注解的应用

我们知道spring boot会通过ComponentScan定义包扫描路径进行业务定义的bean的加载&#xff0c;但是对于很多不在此包路径下定义的bean怎么办呢&#xff1f;比如其他jar包中定义的。这时候import就发挥作用了&#xff0c;通过它也可以实现bean的定义。具体是怎么做的呢&#xff…...

【记录】用JUnit 4的@Test注解时报错java.lang.NullPointerException的原因与解决方法

项目场景&#xff1a; 在练习黑马点评的逻辑过期解决缓存击穿时&#xff0c;编写了一个预热缓存数据的单元测试 SpringBootTest public class HmDianPingApplicationTests {Resourceprivate ShopServiceImpl shopService;Testpublic void testSaveShop() throws InterruptedE…...

Spring Boot 自动化脚本-多线程批量压缩图片

Spring Boot 自动化脚本-多线程批量压缩图片 支持多线程支持多路径配置支持断点续压支持压缩后文件层级路径不变脚本一键启动&#xff0c;支持本地 main 调用或远程 POST 接口调用 背景&#xff1a;在进行数据迁移时&#xff0c;发现附件文件夹过于庞大&#xff0c;且大都为图…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...