当前位置: 首页 > 面试题库 >

简单的布尔不等式运算符错误

夏高朗
2023-03-14
问题内容

使用不等号运算符,我必须定义一个过程weekend,该过程将字符串作为输入,True如果为“ Saturday”或“
Sunday”,False则返回布尔值。

这是我的代码

def weekend(day):
    if day != 'Saturday' or day != 'Sunday':
        return False
    else:
        return True

这似乎False每天都在发生,我不知道为什么,从逻辑上讲它会起作用…有人可以解释吗?


问题答案:

固定版本:

if day != 'Saturday' and day != 'Sunday'

更好的版本:

return day in ['Saturday', 'Sunday']

为什么or不起作用:

当您使用时or,您的状况将显示为“如果今天不是星期六,或者今天不是星期日”。现在,将“今天”替换为“星期六”:

如果星期六不是星期六或星期六不是星期日

“星期六不是星期六”的陈述显然是错误的,“星期六不是星期日”的陈述显然是正确的,因此整个陈述变成“如果是错误或正确”,这始终是正确的。

将“今天”替换为其他任何一天,您会发现该句子的求值结果始终是这些句子之一,这始终是正确的:

if True or False  # day = Sunday
if False or True  # day = Saturday
if True or True   # any other day


 类似资料:
  • 概述 布尔运算符用于将表达式转为布尔值,一共包含四个运算符。 取反运算符:! 且运算符:&& 或运算符:|| 三元运算符:?: 取反运算符(!) 取反运算符是一个感叹号,用于将布尔值变为相反值,即true变成false,false变成true。 !true // false !false // true 对于非布尔值,取反运算符会将其转为布尔值。可以这样记忆,以下六个值取反后为true,其他值都

  • 我知道这个问题很简单。但我想知道布尔运算符的字符串格式。例如,下面显示了整数、字符串和浮点数的字符串格式。布尔运算符真/假可能是什么?

  • 问题内容: 我对何时应该使用布尔运算符与按位运算符感到困惑 与 与 有人能启发我何时使用每种药物,何时使用一种药物会影响我的结果? 问题答案: 以下是一些准则: 布尔运算符通常用于布尔值,而按位运算符通常用于整数值。 布尔运算符是短路,但按位运算符不是短路。 短路行为在这样的表达式中很有用: 按位运算&符将无法正常工作,因为总是会评估双方,即。当你使用布尔运算符时,如果第一个为False,则不计算

  • 前言 上个礼拜介绍了Shell编程范例之数值运算,对 Shell 下基本数值运算方法做了简单的介绍,这周将一起探讨布尔运算,即如何操作“真假值”。 在 Bash 里有这样的常量(实际上是两个内置命令,在这里我们姑且这么认为,后面将介绍),即 true 和 false,一个表示真,一个表示假。对它们可以进行与、或、非运算等常规的逻辑运算,在这一节,我们除了讨论这些基本逻辑运算外,还将讨论Shell编

  • 问题内容: 此方法搜索第一组单词字符(即),返回第一个匹配的组或出现故障的情况。 相同的函数可以重写为: 这是相同的,并且已记录为行为。作为此页中明确指出: 表达式首先计算; 如果为假,则返回其值;否则,将求值并返回结果值。 但是,作为布尔运算符(甚至在手册中也是如此),我希望返回一个布尔值。结果,当我发现这是如何工作时,我感到非常惊讶。 有什么其他用例,和/或这种不太直观的实现的原理是什么? 问

  • 问题内容: 按位运算符应该传递变量并对其进行逐位操作。对于整数,longs,char,这是有意义的。这些变量可以包含由其大小强制的所有值范围。 但是,对于布尔值,布尔值只能包含两个值。1 =真或0 =假。但是没有定义布尔值的大小。它可以大或小。 那么在布尔值上使用按位运算符有什么作用?JVM本质上是否将其转换为普通的逻辑运算符并继续运行?是否出于操作目的将布尔值视为单个位实体?还是未定义结果以及布