首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么这条python 3语句使用按位的or而不是"or"?

为什么这条python 3语句使用按位的or而不是"or"?
EN

Stack Overflow用户
提问于 2019-02-20 04:22:08
回答 2查看 116关注 0票数 2

下面这段python代码是我在problem statement over here中找到的

给定两个整数a和b,不使用乘除和模运算符将两个整数相除,不使用乘除和模运算符求a除以b后的商。

代码语言:javascript
复制
sign = (-1 if((dividend < 0) ^  
                  (divisor < 0)) else 1); 
EN

回答 2

Stack Overflow用户

发布于 2019-02-20 04:26:06

^是一个异或运算,但是它没有逻辑上的异或运算。这段代码利用了True == 1False == 0这一事实,因此使用按位异或具有相同的效果。(例如,True ^ False == 1 ^ 0 == 1 == True。)

使用常规短路andor,然后测试(带冗余括号)将如下所示

代码语言:javascript
复制
sign = -1 if (dividend < 0 and divisor > 0) or (dividend > 0 and divisor < 0) else 1
票数 4
EN

Stack Overflow用户

发布于 2019-02-20 04:28:40

这是一个按位XOR运算符。有关XOR的更多信息,请参阅here

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54774342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档