标签: boolean-expression

Python`如果x不是None`或`if not x is None`?

我一直认为if not x is None版本更清晰,但谷歌的风格指南PEP-8都使用if x is not None.是否存在任何轻微的性能差异(我假设没有),是否存在任何一个真正不合适的情况(使另一个成为我公约的明显赢家)?*

*我指的是任何单身人士,而不仅仅是None.

...比较像无的单身人士.使用是否.

python coding-style boolean-expression

687
推荐指数
7
解决办法
69万
查看次数

如何制作"如果不是真实情况"?

我想echocat /etc/passwd | grep "sysa"不正确时执行命令.

我究竟做错了什么?

if ! [ $(cat /etc/passwd | grep "sysa") ]; then
        echo "ERROR - The user sysa could not be looked up"
        exit 2
fi
Run Code Online (Sandbox Code Playgroud)

syntax bash if-statement boolean-expression

282
推荐指数
5
解决办法
46万
查看次数

为什么`如果没有.__ eq __("a")`评估为真?

如果你在Python 3.7中执行以下语句,它将(从我的测试)打印b:

if None.__eq__("a"):
    print("b")
Run Code Online (Sandbox Code Playgroud)

但是,None.__eq__("a")评估为NotImplemented.

当然,"a".__eq__("a")评估True"b".__eq__("a")评估False.

我最初在测试函数的返回值时发现了这个,但在第二种情况下没有返回任何内容 - 因此,函数返回了None.

这里发生了什么?

python string boolean-expression equivalence python-3.x

145
推荐指数
3
解决办法
4652
查看次数

python中'和'(布尔)与'&'(按位)之间的区别.为什么列表与numpy数组的行为存在差异?

是什么解释了列表与numpy.arrays上布尔运算和按位运算的行为差异?

我对在python中正确使用' &'vs' and' 感到困惑,如下面的简单示例所示.

mylist1 = [True,  True,  True, False,  True]
mylist2 = [False, True, False,  True, False]

>>> len(mylist1) == len(mylist2)
True

# ---- Example 1 ----
>>> mylist1 and mylist2
[False, True, False, True, False]
# I would have expected [False, True, False, False, False]

# ---- Example 2 ----
>>> mylist1 & mylist2
TypeError: unsupported operand type(s) for &: 'list' and 'list'
# Why not just like example 1?

>>> import numpy as np …
Run Code Online (Sandbox Code Playgroud)

python bit-manipulation numpy boolean-expression ampersand

124
推荐指数
5
解决办法
8万
查看次数

那里有任何好的布尔表达式简化器吗?

我正在重构旧代码并遇到了几个过于复杂和冗长的IF条件,我确信它们可以简化.我的猜测是,由于后来的修改,这些条件增长了很多.

无论如何,我想知道你们是否知道我可以使用的一个好的在线简化器.我对任何特定的语言都不感兴趣,只是一个简化的例子:

((A或B)和(!B和C)或C)

并给我一个表达式的简化版本,如果有的话.

我看过其他类似的问题但是没有人指出一个好的简化器.

谢谢.

boolean-logic boolean-expression

103
推荐指数
3
解决办法
26万
查看次数

为什么`a == b或c或d`总是评估为True?

我正在编写一个拒绝访问未授权用户的安全系统.

import sys

print("Hello. Please enter your name:")
name = sys.stdin.readline().strip()
if name == "Kevin" or "Jon" or "Inbar":
    print("Access granted.")
else:
    print("Access denied.")
Run Code Online (Sandbox Code Playgroud)

它按预期授予对授权用户的访问权限,但它也允许未经授权的用户访问!

Hello. Please enter your name:
Bob
Access granted.
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我明确表示,只有在与nameKevin,Jon或Inbar相同时才授予访问权限.我也尝试过相反的逻辑if "Kevin" or "Jon" or "Inbar" == name,但结果是一样的.

python boolean boolean-expression

96
推荐指数
3
解决办法
2万
查看次数

最简洁的转换为布尔值的方法

我有一个变量.我们称之为toto.

toto可以设置为undefined,, null字符串或对象.

我想要最简洁的方法来检查是否toto设置为数据,这意味着设置为字符串或对象,既不是undefined也不是null,并在另一个变量中设置相应的布尔值.

我想到了语法!!,看起来像这样:

var tata = !!toto; // tata would be set to true or false, whatever toto is.
Run Code Online (Sandbox Code Playgroud)

第一个!将被设置为false如TOTO的undefined还是nulltrue别人,和第二个会倒转.

但它看起来有点令人毛骨悚然......所以有更好/更清洁的方法吗?

我已经看过这个问题了,但我想在变量中设置一个值,而不只是在if语句中检查它.

javascript boolean-expression

74
推荐指数
1
解决办法
7万
查看次数

这是在SQL中进行布尔测试的正确方法吗?

假设active是一个"boolean field"(小int,0或1)

# Find all active users
select * from users where active 

# Find all inactive users
select * from users where NOT active 
Run Code Online (Sandbox Code Playgroud)

换句话说,"NOT"运算符可以直接应用于布尔字段吗?

sql boolean-expression

69
推荐指数
4
解决办法
16万
查看次数

逻辑语句的优先级NOT AND&在python中

据我所知,在C&C++中,NOT AND&OR的优先顺序是NOT> AND> OR.但这似乎在Python中没有类似的方式.我尝试在Python文档中搜索它并失败(猜猜我有点不耐烦.).有人可以为我清除这个吗?

python boolean-expression python-3.x

67
推荐指数
5
解决办法
7万
查看次数

布尔到整数转换

我有3个独立的布尔变量,bit1,bit2bit3我需要计算十进制整数相当于在JavaScript?

javascript boolean-expression

45
推荐指数
5
解决办法
4万
查看次数