首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不恰当使用"不是"比较的奇怪的Python行为?

这个问题涉及到Python编程语言的特性和一些不太常见的比较操作。在Python中,"=="和"!="是两个比较运算符,分别表示等于和不等于。然而,当我们使用"!="运算符时,可能会遇到一些奇怪的行为。

在Python中,"!="运算符的行为可能会因为数据类型的不同而有所不同。例如,当我们比较两个不同类型的数字时,Python会尝试将它们转换为相同的类型,然后再进行比较。但是,当我们比较两个不同类型的对象时,比较的结果可能会出乎意料。

例如,当我们比较一个整数和一个字符串时,Python会将字符串转换为整数,然后再进行比较。如果字符串不能转换为整数,就会出现一个错误。

代码语言:python
复制
1 != "1"  # False
1 != "2"  # True
1 != "a"  # TypeError: int() argument must be a string, a bytes-like object or a number, not 'str'

为了避免这种奇怪的行为,我们应该尽量避免使用"!="运算符来比较不同类型的对象。在编写代码时,我们应该尽量明确指定要比较的数据类型,以确保代码的可读性和可维护性。

总之,不恰当使用"不是"比较的奇怪Python行为主要是由于Python在比较不同类型的对象时会尝试将它们转换为相同的类型,从而导致一些不符合预期的行为。为了避免这种行为,我们应该尽量避免使用"!="运算符来比较不同类型的对象,并在编写代码时明确指定要比较的数据类型。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

聊聊因恰当使用alibaba sentinel而踩到

今天就来聊聊因恰当使用alibaba sentinel,而导致熔断降级失效一些例子。因为sentinel还在不断迭代更新中,不同版本会有一些差异,而且在版本迭代中,有些问题可能也已经修复。...本文演示版本使用sentinel-dashboard是1.8.0。...使用springcloud alibaba版本为2.2.3.RELEASE 02 失效场景例子 降级生效问题 A 原因分析 项目中使用了自定义全局异常处理,而异常数或者异常比例统计在 com.alibaba.csp.sentinel.adapter.spring.webmvc.AbstractSentinelInterceptor.afterCompletion...System.out.println(String.format("msg : %s",msg)); return AjaxResult.success("测试热点规则"); } 03 总结 本文主要介绍了常见使用...alibaba sentinel可能遇到问题,不得说下阿里在国内开源做真的挺好,大部分问题在官方issue都能找到解答 文章下方demo链接,提供其他熔断降级例子以及基于文件持久熔断降级配置功能例子

85620

聊聊因恰当使用alibaba sentinel而踩到

今天就来聊聊因恰当使用alibaba sentinel,而导致熔断降级失效一些例子。因为sentinel还在不断迭代更新中,不同版本会有一些差异,而且在版本迭代中,有些问题可能也已经修复。...本文演示版本使用sentinel-dashboard是1.8.0。...使用springcloud alibaba版本为2.2.3.RELEASE 失效场景例子 1、降级生效问题 a、原因分析 项目中使用了自定义全局异常处理,而异常数或者异常比例统计在 com.alibaba.csp.sentinel.adapter.spring.webmvc.AbstractSentinelInterceptor.afterCompletion...System.out.println(String.format("msg : %s",msg)); return AjaxResult.success("测试热点规则"); } 总结 本文主要介绍了常见使用...alibaba sentinel可能遇到问题,不得说下阿里在国内开源做真的挺好,大部分问题在官方issue都能找到解答 文章下方demo链接,提供其他熔断降级例子以及基于文件持久熔断降级配置功能例子

1.3K20

Win 10 中使用 Python 碰到奇怪现象

作者:流光飞舞 来源: https://shuhari.dev/blog/2019/11/win10-store-python 最近在使用 Python 时候发生了很奇怪现象:从命令行执行...如果从在资源管理器打开上述目录的话,会看到这里只有孤零零几个 .exe 文件,且图标也不正常,并不是一个真正、完整 Python 运行环境。 ?...而上面看到 python.exe 是一个“假Python,它唯一作用在于当系统没有找到 Python 时候,自动跳转到微软商店去让我们下载。...可能是担心这个新功能导致一些兼容性方面的结果,微软又在系统设置里面添加了一个比较隐晦功能。比起在层层叠叠设置界面里找到它,更简单方法是直接输入 app exec: ?...按照 Windows 系统规则,PATH 环境变量是系统设置先于用户设置,所以如果安装了标准版 Python 的话,系统应该首先找到是它,而不是应用商店版 Python

1.8K20

PyTorch,你是不是想用Julia?,我们还想要Python生态

机器之心报道 机器之心编辑部 「我们已经从 Julia 中获得了很多灵感,但我们还是想要 Python。」 「人生苦短,我用 Python。」这是 Python 开发领域广泛流传一句话。...之所以废弃了 Lua Torch 而主要使用 Python 编写 PyTorch,一个重要原因是想利用 Python 庞大生态系统。...直到今天,都很难有一种新语言能够克服 Python 网络效应。...例如 Julia 经常称用户可以直接使用数学运算编写循环并将其编译为高效代码,而我们不需要尝试这样做,因为我们内核非常复杂,在任何情况下都能实现最佳低级别实现。 为什么直接使用 Julia?...因为我们既想要 Julia 愿景,也想要 Python 强大生态系统。这个方向具有巨大潜力,但我们也有很多要做工作和许多未解决设计问题。我对接下来发展感到非常兴奋。

50710

现在是不是越来越多大公司在使用Python?为什么?

从事软件开发多年,对于Python脚本使用主要在构建编译体系时候用到了主要在编写编译脚本时候比较好用,到现在演化成一种热门编程语言了,主要原因是编程语言呈现一种集成化发展方向,生态链圈子构建方便并且类库贡献的人多就会受到推崇...,目前符合这种特性JAVA和Python是典型代表,加上Python被称之为胶水语言,几乎和很多编程语言都可以混搭,所以火一塌糊涂。...可以预见未来Python必将在编程领域占据一席之地,现在欧美很多国家直接在小学范围内开设编程课,课程主体就是Python,说明了其简单易学,一个很复杂功能如果调用Python类库可能几句话就能完成了...,没有必要再用别的语言重新从头去实战,软件发展这么多年必然积累了很多成熟功能类库,直接拿过来使用就可以了没有必要从头再来。...Python现在还是培训机构最爱,简单易学就业前景广泛,培训机构就喜欢易学就业好方向,Python和前端都符合这种特性,但在实际找工作过程中是不是Python受到极大推崇,有个朋友有一年多Python

1K40

Linux 上使用 crontab 设置定时任务及运行 Python 代码执行解决方案

但是我在使用过程中还是遇到了一些问题。...crontab 使用 开启 cron 服务日志 为了方便在使用了定时任务之后可以查看定时任务执行情况,所以应该开启服务日志,操作如下步骤: 先查看一下自己日志文件目录中是否有 cron 日志文件...这个任务结果可以去上面的命令中指定文件中查看,是不是每隔1分钟写入了一条信息。...,其中需要注意,执行命令脚本需要填写绝对地址,并且有时候执行命令也要写绝对地址,比如这个例子中 sh 有时候需要些上命令绝对地址 /bin/sh 定时执行 Python 代码 1、写一个 Python...,重点是关于 python3 写法,这里不能直接使用 python3,必须写明 python3 绝对地址才行,不然到时候任务就执行不了。

1.9K10

抽丝剥茧,深入剖析 Python 如何实现变量交换!

让我们从字节码上看下,是不是这种情况。 从字节码一窥交换变量 大家可能不太了解 Python 字节码。Python 解释器是一个基于栈虚拟机。...好了,我们知道靠压栈、弹栈和交换栈顶两个元素,实现了 a,b = b,a 操作。 同时,我们也知道了,上诉元组拆包赋值说法,是恰当。 那 ROT_TWO 是怎么具体操作呢?...以此完成交换栈顶元素操作。 求值顺序奇怪现象! 下面,我们来看一个奇怪现象,在这篇文章里,也可以看到这个现象。...” 奇怪变回拆包现象!! 当我们使用常数作为右侧元组,来给左侧变量赋值时;或使用超过三个元素,来完成便捷交换时,其在字节码层次上便不是 ROT_TWO 这种操作了。...上文所述通俗说法,在这里又成立了! 也就是说,当小于四个元素交换时,Python 采用优化栈操作来完成交换。 当使用常量或者超过四个元素时,采用元组拆包赋值方式来交换。

31420

Python使用折线图、柱状图、热力图比较不同班级相同学号学生成绩

问题描述:有些学校学号最后两位是根据入学成绩顺序排,那么入学之后同学们学习状态是否会有变化呢,入学成绩较好同学是否能够一直保持优势呢,会不会有同学是高考时没有发挥好而入学之后才暴露出真实实力呢,...又会不会有高中没有认真学习同学大学入学以后奋发图强一路拼杀到前几名呢?...如果没有这些情况的话,应该是图形比较稳定,不同班级之间相同学号学生成绩比较接近,并且班级之间和班内同学之间相对优势变化很小。...技术要点:使用折线图、柱状图、热力图绘制不同班级学生某门课程成绩,以作对比。其中折线图和柱状图比较好看懂,就不多解释了。...热力图也是用来查看数据表中多个特征两两相似程度常用可视化技术,可以使用基于matplotlibPython扩展库seaborn绘制,当然该库还支持更多可视化图形绘制。 参考代码: ?

1.5K50

Python 魔法方法说开去

魔法方法有所了解,就能发现这里奇怪之处:popen对象有__next__()方法,但却不能被next()调用,也就不是个迭代器。...问题解决了,我们可以得到下面的推论: 动态修改(或者叫 monkey patch)一个实例魔法方法,是生效。 看下面的例子: >>> class Foo: pass ......下面这段是额外思考,可能比较绕: 再回头去看最开始例子,这个问题之所以奇怪,是因为它用了__getattr__()让实例获得了并不存在于类中属性。也就是说,原来类并没有获得这些额外属性。...而魔法行为判断是基于类中是否有这个魔法方法。这两件事合起来看,那我是不是可以通过元类中__getattr__()方法让类获得本不属于它魔法方法,继而使得实例具有某些行为呢?...我用 Python 时间不可谓不短,也自认对 Python 语言特性比较了解了,但 Python 却总能时不时让我意外一下,这是什么情况?

13620

Python里那些深不见底“坑”

+里面可以更简洁: with open(file_path) as file: 之所以这么用,是这么写更加通用,比如file_path给你传个None就瞎了,还得判断是不是None,如果判断...默认情况下,[-5,256]会在解释器第一次启动时创建并缓存,所以才会有上面的奇怪行为。这是个很常见但很容易被忽略一个坑。...解决方案是始终使用equality(==)运算符而不是 identity(is)运算符比较值。...Python还保留对常用字符串引用,并且可以在比较is字符串身份(即使用)时产生类似的混淆行为。...>>> 'python' is 'py' + 'thon' True python字符串被缓存了,所有python字符串都是该对象引用,对于不常见字符串,即使字符串相等,比较身份也会失败

60420

好与坏布尔变量

我们都知道布尔类型所表达关系是"真"和"假"关系。似乎大部分人对于布尔变量命名并不重视,弄出了很多奇怪变量。今天我们就讨论下怎么命名好布尔变量。   ...那么我们评判该定义是否恰当甚至是好坏,我们可以用该定义是否恰当表达出该事物。   变量命名也是一样,我们需要准确知道该变量表达是什么。...如果变量命名和其表达出来东西不一致,那么就是一个糟糕命名。 以布尔命名为例,Qt君列出一些好命名和不好命名,供大家比较: 不好命名 status,flag,target,a,b。  ...一些恰当命名 targetAvailable: target名词过于含糊,应该准确命名比如:fileAvailable。...is开头修饰布尔变量,如:isError,本身error变量就能表达出有无错误发生状态,降低了可读性。

43130

Java 8 最佳技巧

IntelliJ IDEA建议可以防止你恰当使用Optional, 所以你应该立即处理你发现恰当使用Optional。(根据自己理解翻译) ?...但是使用这种方法并没有给我们节省多少代码行。 你可能需要调整代码格式化设置让代码看起来更加清晰。 ? 使用方法引用 是的,你需要一点时间来适应这个奇怪语法。...但如果使用恰当,真的可以提升代码可读性,看看下面代码: ? 以及使用 Objects 类辅助方法: ? 后面一段代码更加明确可读。...我做过性能测试显示这种重构带来结果比较奇怪,难以预测,有时候好,有时候坏,有时候没区别。一如既往,如果你应用对性能问题非常在意,请认真的进行衡量。...任何技巧和提示都不是一成不变,你应该自己决定哪里需要使用 Streams API ,而哪里还用循环操作。----

1.4K120

Java 8 最佳技巧

IntelliJ IDEA建议可以防止你恰当使用Optional, 所以你应该立即处理你发现恰当使用Optional。(根据自己理解翻译) ?...但是使用这种方法并没有给我们节省多少代码行。 你可能需要调整代码格式化设置让代码看起来更加清晰。 ? 使用方法引用 是的,你需要一点时间来适应这个奇怪语法。...但如果使用恰当,真的可以提升代码可读性,看看下面代码: ? 以及使用 Objects 类辅助方法: ? 后面一段代码更加明确可读。...我做过性能测试显示这种重构带来结果比较奇怪,难以预测,有时候好,有时候坏,有时候没区别。一如既往,如果你应用对性能问题非常在意,请认真的进行衡量。...任何技巧和提示都不是一成不变,你应该自己决定哪里需要使用 Streams API ,而哪里还用循环操作。 转载声明:本文转载自「精讲JAVA」。

1.3K30

手把手教你将一个旧大型项目迁移到 Py

我们确实编写了更多测试,但总体数量并没有发生太大变化。考虑将覆盖率从 65% 提高到 66% ,意味着编写将近2000 行代码测试,这一点也奇怪。...当日志突然在奇怪地方,比如在字符串前写"u"时,它也会变得令人困扰。总的来说,这显然不是我所期望效果。 str/bytes/unicode 这在很大程度上是您所期望。...six.moves six.moves 实现是一个非常奇怪***行为,因此它不像它假装普通 Python 模块那样运行。 我也不同意他们在 six.moves 中包含 mock 选择。...负载机器暴露了与 Python 3 兼容客户数据配置,因此我们必须在 Python 2 中实现对这些情况警告,并确保再次打开 Python 3 之前已经修复了它们。...在 Python 3 中,这里几乎任何其他行为都会更好: 输出为十六进制 ( 结果明显更不一样 ) ,旧行为 (之前代码运行),或者抛出异常 (最好行为!)。

66410

Python面试必须要看15个问题

引言 想找一份Python开发工作吗?那你很可能得证明自己知道如何使用Python。下面这些问题涉及了与Python相关许多技能,问题关注点主要是语言本身,不是某个特定包或模块。...答案 Python并不支持真正意义上多线程。Python中提供了多线程包,但是如果你想通过多线程提高代码速度,使用多线程包并不是个好主意。...这意味着,如果你想提高代码运行速度,使用threading包并不是一个很好方法。 不过还是有很多理由促使我们使用threading包。...第二个函数调用在一块新内存中创建了新列表。l这时指向了新生成列表。之后再往新列表中添加0、1、2和4。很棒吧。第三个函数调用结果就有些奇怪了。它使用了之前内存地址中存储旧列表。...答案: “猴子补丁”就是指,在函数或对象已经定义之后,再去改变它们行为。 举个例子: 大部分情况下,这是种很不好做法 - 因为函数在代码库中行为最好是都保持一致。

1.2K90

不是吧?不会多态,你还说自己会Java

咦,这些代码是谁写,怎么出现在我代码里面,而且还是待提交状态,我记得我没写过呀,饶有兴趣看了看: ? 这不是多态吗,谁在我电脑写测试,不禁一阵奇怪。 "你看看这会输出什么结果?"...奇怪,怎么会做那么奇怪梦,也太吓人了。然后就想到了梦中那部分代码,难道我结果是错吗?...向上转型 根据里氏代换原则:任何基类可以出现地方,子类一定可以出现。 对象既可以作为它自己本身类型使用,也可以作为它基类型使用。...打个不是特别恰当比方:你父亲财产会继承给你,而你财产还是你,总的来说,你财产不会比你父亲少。 ?...,直到最底层导出类 按声明顺序调用成员初始化方法 调用导出类构造器主体 打个不是特别恰当比方:你出现是否先要有你父亲,你父亲出现是否先要有你爷爷,这就是逐渐向上链接方式 构造器内部多态行为

35230

【职业】以什么姿势进入DataMining会少走弯路?

比如: 让学习者认为算法是整个数据挖掘核心?数据挖掘就是随便找到数据套用模型,甚至工具包就OK了? 很多很多不恰当思想灌输,正是让现如今算法行业鱼龙混杂,我也不是批判者,也不是熬鸡汤人。...(PS:这里扩展了,否则又是一篇文章,如果感兴趣,可以反馈,后期会继续补上《一种新思想去解决大矩阵相乘》) 知其然,晓其所以然,万变不离其宗,必定变化莫测: 案例3:很多使用算法,甚至数据清洗方式同学...; c.不了解具体某一个算法原理性,一味用各种工具包,甚至扯上了Spark,R,Mahout 和python等等,输入数据就OK了; ......很多很多,毕竟我不是批判者,我只是希望大家能够做一件正确事...而不是一味就那几步数据挖掘步骤! 在DataMining领域,不做两种人。一种是工具人,一种是研究者: 做数据挖掘,如果真正热爱这个行业,并希望落实想法,推荐大家做以上两类人,工具人和研究者。...显而易见,面试者答案是不会招这样的人! 我这里不是批判工具如何不好,曾经大学,我也只是会用Matlab、Spss,甚至Lingo。毕业初期,也只是会用Python和R等。

54650

从0开始搭建编程框架——思考

),其中他极尽嘲讽了一下C++编译速度,以及他认为很奇怪一些特性。...但是比较讽刺是,他希望借此吸引C++程序员愿望并没有达成,但是吸引力很多PHP或者Java语言栈同学。        ...可以见得,有的时候我们发现问题可能比较明确,解决方案可能也非常恰当,但是最终可能在另外一个领域或者场景下取得不错成果。这样例子还包括最近在人工智能领域大火Python。        ...我们需要先定义当前场景、问题,然后找到一个恰当方案。        ...项目是CPU密集型网络服务,经调研,在当前资源下PHP不足以支撑 项目的主要特征是网络数据获取并统筹计算,数据量不是很大 不能使用Go语言         除了最后一点,很多团队可能都会遇到。

62210

邪恶编码魔咒,你中招没?

下面是我最喜欢内容,是一些令人感到惊讶、搞笑内容,还有一些像是魔咒。一般来说,使用这些有着特殊行为代码被认为是邪恶,因为你代码不应该给人带来惊讶感觉。...但这样奇怪做法远比你在其他人标准头文件中用#define true false少得多。 Java和Python语言中不可思议表现 对于Java程序员来说,“==”运算符语义常常令人感到困惑。...但是,即使是一些微不足道场景,操作符不一致性表现也会使情况变得比较复杂。即便这样做能够提升程序执行效率。 在[-128,127]之间,JVM将使用同一个引用。...更令人称奇是,python语言也有同样行为。 即使变成负值,结果也是一样。 相同实例代码中,python语言解释器整数区间下限似乎是-5。...在[-5, 256]范围内整数区间得到了相同ID值,这样就更奇怪了。 似乎使用破坏性赋值会对既有规则有所改变。我不知道为什么会是这样,实际上我遇到过一个堆栈溢出问题并试图去理解它。

89970

Eolink——ChatGPT使用方法

超级火爆,大街小巷都在说这个,ChatGPT 是一款由 OpenAl 开发语言模型产品,它能够模拟人类语言行为,与用户进行自然交互。...ChatGPT 基于GPT-3.5(Generative Pretrained Transformer 3.5)语言模型建造,通过使用大量训练数据来模拟人类语言行为,并通过语法和语义分析,生成人类可以理解文本...它可以根据上下文语境,提供准确和恰当回答,并模拟多种情绪和语气,可以让用户在与视器交互时,感受到更加真实和自然对话体验。...可以免费使用10次: 接口面板: 接口使用说明: 接口API使用Demo: 根据上线提问与回答约束进行提问。 我们用【幸福安康】写一首诗。  当遇到延时时候别急,毕竟海外比较慢。...总结 Eolink这个ChatGPT让我们在不用到国外网络中就能进行国内测试使用,还是非常不错呢,咱们是不是得送上一个赞呢。

1.2K30
领券