逻辑运算, 不同语言结果不一样??

小卡拉米 2021-01-23 10:38:48
C++

if (1611280101>=1611280121<1611280121)
std::cout << "True" << std::endl;
else
std::cout << "False" << std::endl;

输出: True

Python

if 1611280101>=1611280121<1611280121:
print(True)
else:
print(False)

输出: False

啥情况??
...全文
509 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
l_ysj 2021-02-01
  • 打赏
  • 举报
回复
引用 1 楼 chxchxkkk的回复:
c++里 if (1611280101>=1611280121<1611280121) 里面是不是应该有&& || 之类的,这条语句编译不报错吗
正解,c++就是这样的
?True:False 2021-02-01
  • 打赏
  • 举报
回复
引用 楼主 管理員的回复:
C++

if (1611280101>=1611280121<1611280121)
std::cout << "True" << std::endl;
else
std::cout << "False" << std::endl;

输出: True

Python

if 1611280101>=1611280121<1611280121:
print(True)
else:
print(False)

输出: False

啥情况??
C++由于机器惰性求值特点,导致后面一个表达式不用进行计算,然而python的表示式这样写必须进行拆分,也就是机器算两次而不是惰性求值只算一次
xiaoyin35 2021-01-31
  • 打赏
  • 举报
回复
引用 14 楼 早打大打打核战争 的回复:
python靠缩进空格的数量决定块作用域的设计简直骇人听闻,只有早期Fortran中每行行首必须保留5个空格的标号区的设计可以与之一拼~
但是这样大大节简了码农的时间,也很不错,你是c++er吧。
  • 打赏
  • 举报
回复
python靠缩进空格的数量决定块作用域的设计简直骇人听闻,只有早期Fortran中每行行首必须保留5个空格的标号区的设计可以与之一拼~


xiaoyin35 2021-01-29
  • 打赏
  • 举报
回复
引用 4 楼 管理員 的回复:
[quote=引用 2 楼 早打大打打核战争 的回复:]这个实际上是:(1611280101>=1611280121) < 1611280121
是的 , 估计 python 是解析成 1611280101 >= 1611280121 and 1611280121 <1611280121 来判定的[/quote]
引用 5 楼 赵4老师 的回复:
拿python和c++比这个行为让pythoner和c++er都不齿。
是啊 1611280101 >= 1611280101 是 1(True) 1611280101 < 1611280101 是 0(False) 因为Python很近人情,1611280101>=1611280101<1611280101在人类眼里就是1611280101 >= 1611280101 and 1611280101 <1611280101对吧 1 and 0 = 0(False) 这是因为编辑器认为理由不同,解析式不同。 虽然这让Pythoner和C++er都不齿,但是我和作者一样是PCy+t+heorner(又会Python又会C++),所以我给大家解释了,结帖把!
xiaoyin35 2021-01-29
  • 打赏
  • 举报
回复
引用 2 楼 早打大打打核战争 的回复:
这个实际上是:(1611280101>=1611280121) < 1611280121
这是对的啊! (1611280101>=1611280121)是1(True) 1<1611280121是1(True)没问题
  • 打赏
  • 举报
回复
引用 10 楼 赵4老师 的回复:
[quote=引用 9 楼 早打大打打核战争 的回复:]希望老赵在csdn那啥之前能超越孟子E章,登上总榜冠军~

借您吉言!
只要孟子E章的分不是后台update出来且不再增长或增长的速度比我慢,那一天会来到的。



刚我又做梦了

[/quote]

一万年太久,只争朝夕!
赵4老师 2021-01-26
  • 打赏
  • 举报
回复
引用 9 楼 早打大打打核战争 的回复:
希望老赵在csdn那啥之前能超越孟子E章,登上总榜冠军~
借您吉言! 只要孟子E章的分不是后台update出来且不再增长或增长的速度比我慢,那一天会来到的。 刚我又做梦了
  • 打赏
  • 举报
回复
希望老赵在csdn那啥之前能超越孟子E章,登上总榜冠军~
赵4老师 2021-01-25
  • 打赏
  • 举报
回复
拿python和c++比这个行为让pythoner和c++er都不齿。
赵4老师 2021-01-25
  • 打赏
  • 举报
回复
引用 6 楼 早打大打打核战争 的回复:
老赵总榜升到第六了
你竟然比我先知道。 “你知道的太多了!”
iamnobody 2021-01-25
  • 打赏
  • 举报
回复
引用 5 楼 赵4老师 的回复:
拿python和c++比这个行为让pythoner和c++er都不齿。
csdn的人换了一批又一批,赵4老师的疯狂刷分从未停过
  • 打赏
  • 举报
回复
老赵总榜升到第六了
  • 打赏
  • 举报
回复
这个实际上是:(1611280101>=1611280121) < 1611280121
chxchxkkk 2021-01-23
  • 打赏
  • 举报
回复
c++里 if (1611280101>=1611280121<1611280121) 里面是不是应该有&& || 之类的,这条语句编译不报错吗
小卡拉米 2021-01-23
  • 打赏
  • 举报
回复
引用 2 楼 早打大打打核战争 的回复:
这个实际上是:(1611280101>=1611280121) < 1611280121
是的 , 估计 python 是解析成 1611280101 >= 1611280121 and 1611280121 <1611280121 来判定的
小卡拉米 2021-01-23
  • 打赏
  • 举报
回复
引用 1 楼 chxchxkkk 的回复:
c++里 if (1611280101>=1611280121<1611280121) 里面是不是应该有&& || 之类的,这条语句编译不报错吗
不报错, c++ 17

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧