我知道规则&&
,||
但是什么是&
和|
?请以一个例子向我解释这些.
我正在重构旧代码并遇到了几个过于复杂和冗长的IF条件,我确信它们可以简化.我的猜测是,由于后来的修改,这些条件增长了很多.
无论如何,我想知道你们是否知道我可以使用的一个好的在线简化器.我对任何特定的语言都不感兴趣,只是一个简化的例子:
((A或B)和(!B和C)或C)
并给我一个表达式的简化版本,如果有的话.
我看过其他类似的问题但是没有人指出一个好的简化器.
谢谢.
我通过两列中的值过滤数据框中的行.
由于某种原因,OR运算符的行为与我期望AND运算符的行为相反,反之亦然.
我的测试代码:
import pandas as pd
df = pd.DataFrame({'a': range(5), 'b': range(5) })
# let's insert some -1 values
df['a'][1] = -1
df['b'][1] = -1
df['a'][3] = -1
df['b'][4] = -1
df1 = df[(df.a != -1) & (df.b != -1)]
df2 = df[(df.a != -1) | (df.b != -1)]
print pd.concat([df, df1, df2], axis=1,
keys = [ 'original df', 'using AND (&)', 'using OR (|)',])
Run Code Online (Sandbox Code Playgroud)
结果如下:
original df using AND (&) using OR (|)
a b a b a …
Run Code Online (Sandbox Code Playgroud) 我有一个通过Odbc连接到数据库的方法.我正在调用的存储过程有一个返回值,从数据库端是一个'Char'.现在我将该返回值作为字符串抓取并在简单的if语句中使用它.当只有两个值可以从数据库0和1返回时,我真的不喜欢比较这样的字符串的想法.
OdbcCommand fetchCommand = new OdbcCommand(storedProc, conn);
fetchCommand.CommandType = CommandType.StoredProcedure;
fetchCommand.Parameters.AddWithValue("@column ", myCustomParameter);
fetchCommand.Parameters.Add("@myReturnValue", OdbcType.Char, 1)
.Direction = ParameterDirection.Output;
fetchCommand.ExecuteNonQuery();
string returnValue = fetchCommand.Parameters["@myReturnValue"].Value.ToString();
if (returnValue == "1")
{
return true;
}
Run Code Online (Sandbox Code Playgroud)
处理这种情况的正确方法是什么?我试过'Convert.ToBoolean()',这似乎是一个明显的答案,但我遇到了'字符串未被识别为有效的布尔值.'抛出异常.我在这里遗漏了什么,还是有另一种方法让'1'和'0'表现得像真假一样?
谢谢!
我想要元素方面的逻辑OR运算符.我知道"或"本身并不是我想要的.
我知道AND对应于&
和不对~
.但是OR怎么样?
python boolean-logic logical-operators boolean-operations pandas
In [20]: print None or False
-------> print(None or False)
False
In [21]: print False or None
-------> print(False or None)
None
Run Code Online (Sandbox Code Playgroud)
这种行为让我很困惑.有人可以向我解释为什么会发生这种情况?我希望他们两个都表现得一样.
TRUE == "TRUE"
是TRUE
在R'===
在R中有任何等价物吗?更新:
这些都回归了FALSE
:
TRUE == "True"
TRUE == "true"
TRUE == "T"
Run Code Online (Sandbox Code Playgroud)
唯一的TRUE
价值是TRUE == "TRUE"
.
如果检查identical()
一切正常.
第二次更新:
通过===
运营商我的意思是检查的过程值和数据类型一的变量.在这种情况下,我假设==
操作符只会比较变量的值,而不是它们的数据类型.
-1 == true; //false
-1 == false //false
-1 ? true : false; //true
Run Code Online (Sandbox Code Playgroud)
谁能解释一下上面的输出?我知道我可以通过比较0来解决这个问题,但我很感兴趣.我希望至少有一个草率的equals语句是真实的,因为它们进行了隐式类型转换,我当然没想到三元组会得出完全不同的结果.
boolean-logic ×10
python ×3
.net ×2
pandas ×2
asp.net ×1
boolean ×1
c# ×1
comparison ×1
java ×1
javascript ×1
odbc ×1
r ×1
ruby ×1
vb.net ×1