根据R输入语言定义,之间的差&和&&(相应地|和||)是,虽然后者不是前者被矢量.
根据帮助文本,我读到的差异类似于"And"和"AndAlso"(相应地"Or"和"OrElse")之间的区别......意思是:如果不是所有的评估都不是(即如果A为真,则A或B或C始终为真,因此请停止评估A是否为真)
有人会在这里光明吗?另外,R中是否有AndAlso和OrElse?
r logical-operators or-operator boolean-operations and-operator
我是C#的新手,无法找到XNOR运算符来提供这个真值表:
a b a XNOR b ---------------- T T T T F F F T F F F T
这是否有特定的运营商?或者我需要使用!(A ^ B)?
有没有"非常糟糕的事情"可以发生&& =和|| =被用作语法糖bool foo = foo && bar和bool foo = foo || bar?
尝试执行单个布尔NOT操作,似乎在MS SQL Server 2005下,以下块不起作用
DECLARE @MyBoolean bit;
SET @MyBoolean = 0;
SET @MyBoolean = NOT @MyBoolean;
SELECT @MyBoolean;
Run Code Online (Sandbox Code Playgroud)
相反,我越来越成功了
DECLARE @MyBoolean bit;
SET @MyBoolean = 0;
SET @MyBoolean = 1 - @MyBoolean;
SELECT @MyBoolean;
Run Code Online (Sandbox Code Playgroud)
然而,这似乎是一种扭曲的方式来表达像否定一样简单的东西.
我错过了什么吗?
为什么C#没有条件XOR运算符?
例:
true xor false = true
true xor true = false
false xor false = false
Run Code Online (Sandbox Code Playgroud) 我想要元素方面的逻辑OR运算符.我知道"或"本身并不是我想要的.
我知道AND对应于&和不对~.但是OR怎么样?
python boolean-logic logical-operators boolean-operations pandas
我很困惑何时应该使用布尔与按位运算符
__PRE__
可能有人开导我,当我用每时都会使用一个比其他影响我的结果吗?
例如,我想创建一个掩盖值为40到60之间的元素的掩码:
foo = np.asanyarray(range(100))
mask = (foo < 40).__or__(foo > 60)
Run Code Online (Sandbox Code Playgroud)
哪个看起来很难看,我写不出来:
(foo < 40) or (foo > 60)
Run Code Online (Sandbox Code Playgroud)
因为我最终得到:
ValueError Traceback (most recent call last)
...
----> 1 (foo < 40) or (foo > 60)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Run Code Online (Sandbox Code Playgroud)
是否有规范的方法在具有良好外观的代码的numpy数组上进行元素明智的布尔运算?
这让我完全不知所措。
Sub testChangeBoolean()
Dim X As Boolean ' default value is False
X = True ' X is now True
X = Not X ' X is back to False
End Sub
Run Code Online (Sandbox Code Playgroud)
但我试图在表格单元格(在 Word 中)中切换 .FitText 属性。.FitText 以 True 开头。
如果我将它分配给 X:
Sub testChangeBoolean()
Dim X As Boolean ' again, default is False
X = Selection.Cells(1).FitText ' does set X to True
X = Not X ' X is still True!
End Sub
Run Code Online (Sandbox Code Playgroud)
我只是不明白我做错了什么。
在自然语言中,我们会说"如果颜色是红色,蓝色或黄色,某些颜色是主要颜色."
在我看过的每种编程语言中,都转化为:
isPrimaryColor = someColor == "Red" or someColor == "Blue" or someColor == "Yellow"
Run Code Online (Sandbox Code Playgroud)
为什么没有更接近匹配英语句子的语法.毕竟,如果颜色为红色,或者颜色为蓝色,或者颜色为黄色,则不会说"某些颜色是原色."
我只是isPrimaryColor = someColor == ("Red" or "Blue" or "Yellow")因为而不是红色和黄色它们可能是布尔语句,在这种情况下布尔逻辑适用,但是如下所示:
isPrimaryColor = someColor ( == "Red" or == "Blue" or == "Yellow")
Run Code Online (Sandbox Code Playgroud)
作为一个额外的奖励,语法将允许更多的灵活性,说你想看一个数字是1到100或1000和2000,你可以说:
someNumber ((>= 1 and <=100) or (>=1000 and <=2000))
Run Code Online (Sandbox Code Playgroud)
编辑:
非常有趣的答案,并指出我应该学习更多的语言.在阅读完答案之后,我同意,对于严格的相等比较,类似于集合成员资格的东西是表达同一事物的清晰简洁的方式(对于具有简明内联列表或集合和测试成员资格的语言支持的语言)
出现的一个问题是,如果要比较的值是昂贵计算的结果,则需要(好的,应该)创建临时变量.另一个问题是可能需要检查不同的评估,例如"一些昂贵的计算结果应该是素数并且在200到300之间"
更多功能语言也涵盖了这些场景(虽然取决于语言可能不是更简洁),或者实际上任何可以将函数作为参数的语言.例如,前面的例子可能是
MeetsRequirements(GetCalculatedValue(), f(x):x > 200, f(x):x < 300, IsPrime)
Run Code Online (Sandbox Code Playgroud)