使用不等号运算符,我必须定义一个过程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本质上是否将其转换为普通的逻辑运算符并继续运行?是否出于操作目的将布尔值视为单个位实体?还是未定义结果以及布