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

布尔运算符如何在python中的字符串上工作

曹伟泽
2023-03-14
问题内容
True and "asdf" or "qwer"

结果=>“ asdf”

False and "asdf" or "qwer"

结果=>“ qwer”

我不明白这些东西是如何工作的。我以为字符串上的布尔运算符会导致类型错误,但事实并非如此。它是否类似于预定义语句,例如“ a if b else c”?


问题答案:

确定答案后,Python 操作停止,并返回上一个扫描对象的值。它们不返回 TrueFalse
。我喜欢这个功能,发现自己一直在使用它。

由于非空字符串算作True

True and "asdf" or absolutely_anything_here_or_following

停止计算到达 或的时间, 因为现在已经确定了答案( 值之一为true),并返回它检查的最后一项内容(“ asdf”)。甚至不检查其他操作数。

另一方面,当

False and "asdf" or absolutely_anything_here

命中 or ,它尚不知道答案,因此继续下一个操作数。只要absolute_anything_here是最后一个操作,就可以确定答案并返回最后扫描的内容。



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

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

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

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

  • 问题内容: 我有两个布尔列表,例如, 我想将这些列表与预期的输出一起: 我以为表达会起作用,但后来发现它不起作用:事实上, 输出: 输出: 使用列表推导 确实 具有正确的输出。ew! 请注意,我找不到任何可以告诉我AND运算符的参考,就像我尝试使用x和y一样。但是尝试用Python进行操作很容易。有人可以向我解释发生了什么吗? 这是一个简单的测试程序: 问题答案: 只需根据它们的真实值返回第一个或

  • 问题内容: 我正在Pandas中使用布尔值索引。问题是为什么要声明: 工作正常而 错误退出? 例: 问题答案: 当你说 你暗中要求Python进行转换并转换为布尔值。 NumPy数组(长度大于1)和对象(例如)没有布尔值-换句话说,它们引发 当用作布尔值时。那是因为不清楚何时应该为True或False。如果某些用户的长度非零,则可能会认为它们为True,例如Python列表。其他人可能只希望其所有