首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >True = False == True

True = False == True
EN

Stack Overflow用户
提问于 2010-08-31 05:49:10
回答 2查看 5K关注 0票数 2

可能重复:

Why can't Python handle true/false values as I expect?

在这种情况下,False = True应该会引发一个错误。

代码语言:javascript
复制
False = True
True == False
True

真+假==真的吗?

代码语言:javascript
复制
if True +  False:
    print True
True

又是真的?

代码语言:javascript
复制
if str(True + False) + str(False + False) == '10':
    print True
True

LOL

代码语言:javascript
复制
if True + False + True * (False * True ** True / True - True % True) - (True / True) ** True + True - (False ** True ** True):
    print True, 'LOL'
True LOL

为什么这都是真的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-31 05:52:09

False只是一个全局变量,可以分配给它。然而,如果你这样做的话,它将打破一切。

请注意,此行为已在python3k中删除。

代码语言:javascript
复制
Python 3.1 (r31:73578, Jun 27 2009, 21:49:46) 
>>> False = True
  File "<stdin>", line 1
SyntaxError: assignment to keyword

另外,int(False) == 0和int(True) == 1,因此您可以使用它们执行任意算术。

票数 12
EN

Stack Overflow用户

发布于 2010-08-31 05:56:03

参见Why can't Python handle true/false values as I expect?,这将回答您的第一个问题。基本上你可以想到:

代码语言:javascript
复制
False = True
True == False
True

作为

代码语言:javascript
复制
var = True
True == var
True

(让我想起#define TRUE FALSE // Happy debugging suckers *咯咯*)

至于其他问题,当您在TrueFalse上进行算术运算时,它们会被转换为10

  • True + False1 + 0相同,即1,即True.
  • str(True + False) + str(False + False)str(1) + str(0)相同,而这里的+连接字符串,因此您将得到最后一组算术运算,这些运算给出了一个非零的结果(1),即True.

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

https://stackoverflow.com/questions/3606333

复制
相关文章

相似问题

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