根据题主要求:

写两个函数,不用“== >= <= > < 以及is和in”比较两数,同则True,异则False

答案如下:

def Judge1(a,b):

return not a-b

还有:

def Judge2(a,b):

return not a^b

看起来这两个函数像是一样的对吧?

其实他们的原理也可以说一样但又不太一样。

先把这俩代码丢进运行环境内走一走看看能不能得到要的答案:

Judge1:

同则True,异则False

善!

Judge2:

满足要求~

那么接下来解释为什么说原理一样又不大一样:

原理:

「^」和「-」都属于运算符,但前者是位运算符,后者是算术运算符,他们运算的结果均是一个数值。

那么问题的关键就在这里啦,为什么结果是数值,但是在输出的时候却会变成了True和False的布尔值呢?

这就是上面两个函数都用到的一个原理:这是因为在Python中,任何非0,非None(空值)的表达式,均可表示True(真,1)的意思。

因此在两者的运算中,只要运算结果不等于0,均可当成True,然后在not(非)的作用下,变成False

因此看Judge1,返回的值是not a-b

显然,如果两个数相同,那么a-b的值将会等于0,如果不同,那无论是正数还是负数,都不会等于0:把not去掉,便可得到原来的数值结果

如此便能得到想要的结果了。

那么「^」?减号还好说小学数学都懂,那这个位运算符是个什么东西?

我们可以在实践中了解到它:

我们让程序运算了三组值(1,3)(3,1)(9,3)

前两组值无论位置如何,结果均相同。

这是因为「^」运算符是属于位运算符,名叫按位异或运算符。

这名老长老高大上了,看着就让人糊涂。

异或——如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

就像这样,如果a,b两个值相同,那么异或结果等于0。

那为什么不同的数并没有得到上面所说的结果1呢?

这是因为“按位”两个字,完整来说按位异或运算符是一个二进制运算,而这个按位,就是按二进制中的每一位进行运算,其运算过程如下:

如果是数(1,3),对应的二进制数为(01,11)

按位一个地进行异或运算第一个0和1,不同,则返回第一位 1

第二个1和1,相同,则返回第二位 0

得到结果(10)

对应的十进制数就是2

因此得到的结果是2,而无论如何调换两数的位置,结果也都会是2。

再来一个例子强化一下:

(9,3)——(1001,11)因为要按位运算,所以得补上0:(1001,0011)

那么按位异或运算,得到结果是……

(1010)——10

那么这就是二进制的按位异或运算啦。

根据以上所学,我们就可以知道,如果a^b,两数相同,则会返回0,如果不同,则一定不会是0,就像a-b一样,因此在作为表达式的时候就一定能得到布尔值True。

最后再放一遍本题的答案:

def Judge1(a,b):

return not a-b

def Judge2(a,b):

return not a^b

今天重点讲了非空即True的原理和位运算的原理,希望能对阅读到本答案的读者有用,如果你们觉得本答案给予了一定的帮助,麻烦点个赞/感谢/关注哦~谢谢啦!

python中所有数值都可以准确比较是否相等_在python里,禁用== = = 以及is和in,如何判断两个数字的值是否相等?...相关推荐

  1. python中的序列类型数据结构元素的切片操作_浅析python中的分片与截断序列

    浅析python中的分片与截断序列 序列概念 在分片规则里list.tuple.str(字符串)都可以称为序列,都可以按规则进行切片操作 切片操作 注意切片的下标0代表顺序的第一个元素,-1代表倒序的 ...

  2. 关于python中的复数、下列说法正确的是_关于Python中的复数,下列说法正确的是?...

    关于Python中的复数,下列说法正确的是? 答:表示复数的语法是real + image j 实部和虚部都是浮点数 方法conjugate返回复数的共轭复数 中国大学MOOC: 依据年龄和死亡率之间 ...

  3. 在python中、实例变量在类的内部通过_【python】类变量、实例变量

    1.类变量.实例变量概念 类变量: 类变量就是定义在类中,但是在函数体之外的变量.通常不使用self.变量名赋值的变量.类变量通常不作为类的实例变量的,类变量对于所有实例化的对象中是公用的. 实例变量 ...

  4. python中一个字符视为长度为1的字符串_【Python】笔试题知识点小结(1)

    题目来源:牛客网 今天开始复习巩固一下基础知识点- 蓝色表示题干,红色表示答案,黑色表示知识点. 1.下列代码的运行结果是? print 'a' < 'b' < 'c'True 1)pyt ...

  5. python中plot和bar要求的格式不一样_在Python中matplotlib中匹配的图形大小,包括和不包含make_axes_locatable- divider colorbars...

    我在2×2网格中有4个图形,但只希望右边的两个图形有条形(比例适用于行).我正在使用表格 divider = make_axes_locatable(ax) cax = divider.append_ ...

  6. python中的字体设置,pythontkinter设置界面字体样式_修改Python Tkinter中的默认字体...

    我正在使用Tkinter在Python2.7中开发GUI,但我遇到了一个烦人的问题. 我想定义所有小部件使用的默认字体,如果可能的话,请在一行中定义.此行仅修改Entry或ComboBox中使用的字体 ...

  7. Python中的数值类型

    Python中的数值类型 Python中的数值是Python中常用的数据类型之一,接下来向大家介绍一下Python中数的使用. Python中数分为三种:int(整数),float(浮点数),comp ...

  8. python中一切数据都是对象吗_python中的深拷贝(deepcopy)和浅拷贝(copy)

    前言 在很多语言中都存在深浅拷贝两种拷贝数据的方式,Python中也不例外.本文中详细介绍了Python中的深浅拷贝的相关知识,文章的内容包含: 对象.数据类型.引用 赋值 浅拷贝 深拷贝 一.Pyt ...

  9. python中一切内容都可以称为_创业基础答案黑龙江大学

    [单选题]成人麻醉前什么时间禁食水最合适 A. 禁食14h,禁水6h B. 禁食12h,禁水4h C. 禁食10h,禁水2h D. 禁食8h,禁水1h E. 禁食6h,禁水30min [多选题]木材的 ...

最新文章

  1. pandas.io.data 获得金融数据失败
  2. 积跬步,聚小流------Bootstrap学习记录(2)
  3. 转:ESRI矢量数据格式简介
  4. CentOS重新加载网卡报错 Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/23
  5. IBASE handle free after save - buffer table cleared
  6. 操作系统学习笔记-2.1.5线程概念和多线程模型
  7. arima模型 p q d 确定_自回归移动平均模型(ARMA)
  8. (13)<datalist> 标签
  9. “Python小屋”编程比赛参赛与领奖方式
  10. 信用评分卡 (part 2of 7)
  11. Java去除使用富文本编辑器时自动生成的标签
  12. 最全可编辑世界地图中国地图素材
  13. Vue 单文件模板中覆盖引入库 CSS 样式
  14. 系统结构考点之CRAY-1向量处理机
  15. Containerd shim 原理深入解读
  16. 十门峡旅游攻略:临安十门峡的春天
  17. python+opencv将图片转换成视频
  18. 无处不在的内存泄漏-苹果BUG?
  19. UNIX Time Sharing System - UNIX分时系统翻译
  20. KSO-2022年2月份PYPL编程语言排行榜

热门文章

  1. 北大、清华计算机课程资源集
  2. 干货:手把手教你在音频分类DCASE2017比赛中夺冠
  3. ifen.os x pe.dmg天翼云_3.3K屏显纵览天下 11代酷睿横行职场 华硕灵耀X纵横值得选择...
  4. idea如何将web项目打成war包maven和非maven
  5. axure 浏览器插件_7款超级实用的谷歌浏览器插件
  6. python执行mysql存储过程_Mysql学习---使用Python执行存储过程
  7. python打印所有的水仙花数_python使用循环打印所有三位数水仙花数的实例
  8. sed 之简单用法小记
  9. vue实现增删改查功能
  10. 主席树初探--BZOJ1901: Zju2112 Dynamic Rankings