python 除法取模_跟我一起学python | 探究05

算术运算、比较运算、赋值运算、位和位运算、运算优先级

python里的算术运算

我们最熟悉的计算就是算术运算,加减乘除等。在python的算术运算中,除了四则运算外,还有幂运算、取模、取整运算。

什么是取模、取整运算呢?取模和取整运算和除法相关。取模即取除法的余数,取整即取除法的商。

11%7

取模运算,结果为:4

11//7

取整运算,结果为:1

如果是负数取模取整,会是怎样的结果呢?

i1=-11%7i2=-11%-7i3=-11//7i4=-11//-7print(i1,i2,i3,i4)

结果是:3 -4 -2 1

下面有一个混合运算,猜心算一下运行结果会是怎样的呢?

4*2**3//6+2%7-2

很显然,这里就牵涉到不同运算之间的优先级。

算术运算里,优先级从高到低是:幂运算、乘除取模取整、加减

4*2**3//6+2%7-2

运行结果:5 和你心算的结果是不是一样呢?

python里的比较运算

所谓的比较运算就是等于(==)、不等于(!=)、大于(>)、大于等于(>=)、小于(

9!=10

运行结果:True

9!=9

运行结果:False

python里的赋值运算

在程序里,赋值也是一种运算。赋值的符号“=”,以后我们还会碰到诸如:“+=”、“-=”……等赋值运算。

来看一个范例:

i=5+4==6-1 print(i)

运行结果为:False

这个混合运算里有算术运算、比较运算和赋值运算,这些运算的优先级,从高到低依次是:算术运算、比较运算、赋值运算。

i=5+4==6-1

i=9==5 (9不等于5,所以此比较运算结果为False)

i=False


python里的位运算

什么是“位”?

“位”是数据存储的最小单位。在计算机中二进制数系统中,每个0或1就是一个“位”,英文写作bit,简记为b,称为比特。“位”就如同下图中的格子,每一个格子就是一个“位”,而每一个“位”存储的数据只有两种可能,要么是“0”,要么是“1”。我们将8个“位”称为一个“字节”,英文是Byte。“位”和“字节”的转换公式是:8b=1B。字节大小的转换关系是这样的:1024B=1KB,1024KB=1MB,1024MB=1GB,1024GB=1TB……

2befab5ab39b162defc48c959a6f442b.png

对于“位”有一些了解了。下面我们再来复习一下二进制。

和满10进一位的十进制不同,二进制是满2就要进一位的一种进制,二进制只有两个数值:0和1。如果你初次接触二进制,建议你不妨先做一个将十进制的0-10转换成二进制的练习。最容易犯错的地方是十进制的4和8。下图是十进制0-10对应的二进制,看看你转换对了没有。

5f5e0c43cf1924732200d35bd104925f.png

有了“位”的理解和二进制的知识,我们就来探究一下基于二进制的位运算。

—— “&”按位的运算 ——

按位与的运算规则是:

0 & 0 = 0

0 & 1 = 0

1 & 0 = 0

1 & 1 = 1

或许这个规则不太好理解,我借用电路来说明一下。

开关开就是“1”,关就是“0”;灯亮是“1”,灯灭是“0”。

0e7e53ba7e9f03bab525b8f46d5e76b4.png

尝试用python代码来实现一下:8&6

python的位运算也是先将十进制数值化为二进制后再进行的运算。

print(8&6)

运算结果是:0

我们再来人工列式演算一下,一来校验结果,二来清晰地理解按位与的运算过程:

eca2d0dc09fa64632f30d0cb9eddb28b.png

计算一下“10&6”呢?我们先人工列式演算一下:

4c033e5c399dc98e0f24d5dd7c05bb94.png

python代码来运行:

print(10&6)

运行的结果果真是:2

—— “ | ”按位的运算 ——

按位或的运算规则是:

0 | 0 = 0

0 | 1 = 1

1 | 0 = 1 

1 | 1 = 1

为了方便大家理解,我也同样借用电路来说明“按位或”的运算规则。

开关开就是“1”,关就是“0”;灯亮是“1”,灯灭是“0”。

25b938abffef4c5776935383515530d6.png

我想算算“8|6”,用python代码来运算。

print(8|6)
运行结果是:14我再来用python算一算“10|6”
print(10|6)

运行结果还是:14   嗯?怎么是一样的答案?

好吧,我们来人工列式演算一下,一来校验结果,二来清晰地理解按位或的运算过程:

4311c8488e58bba4ea89b0ebbd323e1b.png

 —— “ ^ ”按位异或的运算 ——

什么是“异或”?“异或”和“或”有什么不同呢?

我们用维恩图来做个说明:

71c0322641550112f5a0ce14f81f7da9.png

“异或”和“或”在运算上有怎样的不同呢?我列表做了一个对比。

4aaf5e7be7203ac1512ccf1f93970dfb.png

两个计算的不同之处,我用黄色框凸显出来。

我们现在用python编码来算算“8^6”

print(8^6)

运行结果是:14 和“按位或”的计算结果一样,那么,“10^6”的计算结果也还是14吗?

print(10^6)
运行结果是:12

为什么“10^6”和“8^6”“按位或”的计算结果是一样的,但是“按位异或”的计算结果却不一样呢?

我们用人工列式演算一下,你是否看出其中的差别呢?

8825648b998e2fde4871b8a38592b567.png

位运算还有“按位取反运算”、“左移动运算”和“右移动运算”,以后再慢慢学习。

此文原发表于知乎网站。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499244.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中有atoi函数吗_C++ 多态的实现及原理,深挖vptr指针,手动调用虚函数

什么是多态?父类指针即根据指向的不同对象,响应同一消息(函数调用),产生不同行为。多态三要素?1,继承2,虚函数重写3,父类指针(引用)指向子类对象多态的实现很简答,让我们来看一段代码…

一文带你读懂base64编码

hi,大家好,我是开发者FTD。相信很多同学在工作中,经常会用到Base64编码,那大家知道为什么会有Base64编码吗?我们为什么要使用它呢,它又是怎么实现的呢?下面就让我们来一起深入探究一下Base64编码…

不显示参数名_第51p,万能参数与返回值,Python中函数的返回值

大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第51篇文章,第三阶段的课程:Python进阶知识:详细讲解Python中的函数(四)>函数的参数与返回值(下篇)。函数是非常…

阿里云服务器安装JDK指南

hi,大家好啊,好久不见,最近阿里云双十一做活动,很多博主都在做购买返现活动,不知道大家有没有去白嫖他们一个服务器,服务器买来可以用来学习一下服务器搭建,应用部署等等,可以做的事…

word如何设置长宽高_word怎么设计表格高和宽

在word中输入文字可能大部分人都能熟练掌握,但是有时word中也需要插入表格,这样不仅能准确的表达出想要表达的意思,那么下面就由学习啦小编给大家分享下技巧,希望能帮助到您。word设计表格高和宽的步骤如下:步骤一&…

python字符串筛选输出_如何在Python中过滤字符串列表

Python使用列表数据类型在顺序索引中存储多个数据。它的工作方式类似于其他编程语言的数字数组。filter()方法是Python的一种非常有用的方法。可以使用filter()方法从Python中的任何字符串、列表或字典中过滤一个或多个数值。它根据任何特定条件过滤数据。当条件返回true时&…

销售流程图_工作流程图网络图模板,招聘销售合同库存,完整设计拿来就用

Hello大家好,我是帮帮。今天跟大家分享一组工作流程图模板,招聘销售合同库存,完整设计拿来就用。为了让大家能更稳定的下载模板,我们又开通了全新下载方式(见文章末尾),以便大家可以轻松获得免费模板和收费模板。メ大家…

协议详解_I2C协议详解

I2C通信协议I2C通信协议的基础简介I2C「Inter-integrated Circuit」总线支持设备之间的短距离通信,用于处理器和一些外围设备之间的接口,它只需要两根信号线来完成信息交换。I2C最早是飞利浦在1982年开发设计。I2C是同步传输信号,关于同步和异…

http 302错误_http面试题

作者:忘れられたくない出自:SegmentFault 思否原文:segmentfault.com/a/1190000024538846http状态码分类1xx服务器收到请求2xx请求成功3xx重定向4xx客户端错误5xx服务端错误常见状态码200 成功301 永久重定向302 临时重定向304资源未被修改40…

controller属于哪一层_孺教网分享|家长层次有五层,家长们都来看看,你属于哪一层?...

经常听到这样一些话:养不教父之过,有其父必有其子。孩子是父母的影子,父母是孩子的第一任老师.......这些都反映了在孩子成长的过程中,家庭教育的重要性。而家庭教育往往体现在非智力因素方面,比如感恩、诚信、善良、尊…

cad里面f命令用不了_CAD出现命令无效、失灵等问题?不用慌,两招帮你快速解决...

一、CAD常见无效问题1、填充命令无效我们有时候需要对某一区域进行填充,但是却发现怎么也填充不出来,这个时候就应该检查一下【选项】设置了,具体操作步骤如下:①命令行中输入【OP】,按下回车键调出【选项】对话框&…

powershell 遍历json_如何从Powershell脚本读取JSON数据并遍历它

我开始学习Powershell,我正在尝试读取JSON文件。如何从Powershell脚本读取JSON数据并遍历它这里是我的JSON文件(名为“versions.json”):{"versions": {"1.0.0": {"Component1": "1.0.0","Component2"…

卫生纸玫瑰花折法5步_餐巾纸折纸玫瑰花的折法图解教程

餐巾纸折纸玫瑰花的折法图解教程折纸玫瑰花的制作方法非常的多,但是常见的折纸玫瑰花制作方法基本上都是以方形纸张进行折叠来制作而成的。这里介绍的这种折纸玫瑰的制作方法更加的简单、经济和环保一些。同时其有着一个极大的优点,那就是无论在哪里都可…

mysql ==null_mysql = null 问题

SELECT * FROM cms_user WHERE ageNULL;Empty set (0.03 sec)查询表中记录age值为nullmysql> SELECT * FROM cms_user WHERE age<>NULL;------------------------------------------------------------------------| id | username | password | email | regTim…

mysql status_mysql status查看

总结了几种查看MySQL运行状况的方法&#xff0c;如下&#xff1a;1、phpMyAdmin最简单的方式&#xff0c;在phpMyAdmin直接点击状态查看&#xff0c;详细如下图。这查看的是MySQL的一些运行状况数值&#xff0c;这种方式被大多数系统管理员所不齿&#xff0c;因为专业的MySQL服…

windows mysql 备份_Windows下MySQL数据库备份脚本(二) | 系统运维

说明&#xff1a;MySQL数据库安装目录&#xff1a;C:\Program Files\MySQL\MySQL Server 5.0MySQL数据库存放目录&#xff1a;C:\Program Files\MySQL\MySQL Server 5.0\dataMySQL数据库备份目录&#xff1a;D:\MySQLdata_Bak实现目的&#xff1a;备份MySQL数据库存放目录中的m…

php mysql 秒杀_redis+PHP实现高并发下秒杀数据入库的问题

在高并发下实现抢购秒杀功能中&#xff0c;我有一个疑问&#xff0c;就是数据入库的问题&#xff0c;什么时候入库。设想思路&#xff1a;1.判断他抢购成功了&#xff0c;立马把生成的订单数据写入mysql订单表&#xff0c;同时库存表字段减少1&#xff1b;2.判断抢购成功后&…

mysql8解决区分大小写问题_球磨机“包球”和“饱磨”分不清?点进来快速区分,解决问题...

球磨机的“包球”和“饱磨”现象都是设备在磨矿过程中出现的常见故障&#xff0c;大多数用户对这两种情况不是特别了解&#xff0c;出现问题时也不知从何下手&#xff0c;导致机器无法正常作业。其实“包球”和“饱磨”有一定的相似之处&#xff0c;同时在产生原因、处理方法等…

控制浏览器增加新页签的js_技术网站重写复制按键 js 跳转到注册页,就能增加用户?...

背景技术网站重写复制按键的 js &#xff0c;作为开发人员你会为了复制一段代码而注册一个用户吗&#xff1f;一个小需求变动&#xff0c;将跳转详情页改为 target_blank 的方式打开新页面。原来用 Vue.js 的路由代码 push 需要换成 resolve &#xff0c;本文将介绍该需求调整过…

win7系统一直反复重启_iPhone7开机白苹果反复重启进不了系统维修过程

故障现象iPhone7开机时在出现苹果图标后反复重启&#xff0c;无法进入系统。维修过程拿到手机之后开机测试&#xff0c;在显示苹果图标界面反复重启。这种故障是开机过程不能通过自检造成的。由于客户要保留资料&#xff0c;所以是不能刷机。根据经验判断应该是基带部分有问题。…