当前位置: 首页 > 知识库问答 >
问题:

python中没有逻辑运算符的If语句

燕宜修
2023-03-14

我有以下python代码:

value = 1.9

if value:
    #do something
else:
    #do something else

这里发生了什么?我无法理解这一点,因为value不是布尔值。

共有3个答案

澹台博文
2023-03-14

检查此文档资料。在python中,就像在许多编程语言中一样<代码>0,,[]类型的值给出False,而任何其他值返回True

西门伟
2023-03-14

可以对任何对象进行真值测试,以便在if或而条件中使用,或者作为下面布尔运算的操作数。以下值被视为false:

  • 错误
  • 任何数字类型的零,例如0、0L、0.0、0j。
  • 任何空序列,例如,,(),[]。
  • 任何空映射,例如,{}。
  • 用户定义类的实例,如果该类定义了非零()或len()方法,则该方法返回的整数为零或bool值为False

https://docs.python.org/2.4/lib/truth.html

所以既然价值不是这些东西之一,它需要如果,而不是其他!

施德元
2023-03-14

Python有一个真实性的概念,其中非布尔值基本上被“强制”为布尔值,如下所示:

4.1真值检验

任何对象都可以测试真值,用于ifwhile条件,或作为下面布尔运算的操作数。以下值被认为是错误的:

  • False
  • 任何数字类型的零,例如,00.00j
  • 任何空序列,例如,"()[]
  • 任何空映射,例如{}
  • 用户定义类的实例,如果类定义了__bool__()__len__()方法,则该方法返回整数零或bool值False

所有其他值都被认为是真的-因此许多类型的对象总是真的。

除非另有说明,否则具有布尔结果的操作和内置函数始终返回0False表示False,返回1True表示True。(重要例外:布尔运算始终返回其操作数之一。)

底线是1.9属于“所有其他值都被认为是真的”子句,因为它与所有被认为是假的值都不匹配。最接近的是第三个(数字类型),但是,由于它不是零,所以它不太接近。

 类似资料:
  • 问题内容: handlebars JS中是否可以将逻辑运算符合并到标准handlebars.js条件运算符中?像这样: 我知道我可以编写自己的帮助程序,但是首先我想确保自己不会重新发明轮子。 问题答案: 这可以通过与帮手助手“作弊”来实现。这可能与开发把手的人的思想背道而驰。 然后,您可以像这样在模板中调用帮助程序

  • 问题内容: 在阅读python中的逻辑运算符时,我遇到了一些表达式: 输出1 输出:5 谁能解释这是如何工作的? 我知道, 操作数 的的 逻辑 运算符是 布尔 问题答案: 有据可查: 两者都短路(例如,如果为 真,则不会评估)。 __ 该文档还指出了被认为 falsy (,,,空序列/映射,…) -一切被认为是 truthy 。 一些例子: 请注意,最后两个如何显示短路行为:不执行第二个语句(将引

  • 主要内容:打脸某些 Python 教程,逻辑运算符的本质高中数学中我们就学过逻辑运算,例如 p 为真命题,q 为假命题,那么“p且q”为假,“p或q”为真,“非q”为真。 Python 也有类似的逻辑运算,请看下表: 表 1 Python 逻辑运算符及功能 逻辑运算符 含义 基本格式 说明 and 逻辑与运算,等价于数学中的“且” a and b 当 a 和 b 两个表达式都为真时,a and b 的结果才为真,否则为假。 or 逻辑或运算,等价于数学

  • 问题内容: 我对使用Python中的逻辑运算符获得的结果感到有些困惑。我是一个初学者,正在学习一些书籍,但是它们并没有像我所希望的那样详尽地解释。 这是我自己的代码: 似乎只是输出两个变量。 因此,我添加了另一个变量整数。然后我打印并得到以下输出: 后台Python到底是怎么回事?为什么输出的不是7或5、2之类的。 问题答案: Python布尔运算符返回最后计算的值,而不是True / False

  • 主要内容:逻辑运算的结果,优先级现在假设有这样一种情况,我们的软件比较特殊,要求使用者必须成年,并且成绩大于等于60,该怎么办呢? 或许你会想到使用嵌套的 if 语句,类似下面这样的代码: 这种方法虽然能够行得通,但不够简洁和专业,我们可以将其压缩为一条 if else 语句: 是一个新的运算符,称为 逻辑运算符,表示 和 两个条件必须同时成立才能执行 if 后面的代码,否则就执行 else 后面的代码。 在高中数学中,我们就学

  • 我试图找出如何比较if语句中的字符串。我的大部分代码都可以忽略,但都是针对上下文的。我试图在我的简单的石头、布、剪刀游戏中添加一条信息,当有人在石头、布或剪刀之外输入一根弦时。有人能告诉我我在有星号的部分做错了什么吗? };