在回答a question about Python and/or logic时,Spacetoast写道:
x and y returns true if both x and y are true.
x or y returns if either one is true.
我设法通过使用"或"来迷惑自己。什么时候它应该是"和"。无需编制真值表,是否有助记符来记住正确使用和/或?
答案 0 :(得分:3)
不是真正的助记符,但NOAH过去帮助了我的学生。
必须有多少输入?
无=>也不
一个=>或
全部=>和
老实说=>注意真相表
老实说,能够使用真值表的技巧值得坚持不懈。 (注意python中没有NOR运算符,它是一个Not-or)。
答案 1 :(得分:2)
对该问题的尖锐回答的混淆来自于他说OR
包含AND
,这在你的案例中是正确的。这里没有什么可记住的,如果您使用or
运算符并且两个表达式中至少有一个是True 那么如果 none则返回True
其中两个表达式为True ,它返回False
这意味着如果x
和y
都True
or
True
也是x
,因为只要第一个表达式True
} and
没有必要评估第二个。
另一方面,如果您正在使用private void FillEventInfo(Event e)
{
txtBoxEventInfo.Font = new Font(<someFontFamily>, 16);
txtBoxEventInfo.Text = String.Format("Navn: {0} Startdate: {1} Enddate:{2} Rostersize: {3} Info: {4} ", e.Name, e.StartDate, e.EndDate, e.RosterSize, e.Description);
txtBoxSomeOtherEventInfo.Font = new Font(<someOtherFontFamily>, 22);
txtBoxSomeOtherEventInfo.Text = "Some other text"
}
并且第一个表达式没有评估为True,则无需评估第二个表达式,因为它&#39他们两个都不可能成为真的。
答案 2 :(得分:0)
不需要助记符 通过一个简单的概念记住这一点:
或->任意一个为真
和->全部为真
true或false = True
true和false = False