为什么不能在条件语句的代码中分解出 LCM 变量?
Why can you not factor out the LCM variable in the code for conditional statement?
无法理解因式分解 0 的布尔表达式。
x,y=24,36
LCM=1
counting=True
while counting:
if (LCM%x and LCM%y) == 0:
print('The LCM is {}'.format(LCM))
break
LCM+=1
LCM 计算结果为 24,这是错误的
但是这段代码给出了正确的 LCM:
x,y=24,36
LCM=1
counting=True
while counting:
if LCM%x==0 and LCM%y == 0:
print('The LCM is {}'.format(LCM))
break
LCM+=1
LCM为72,正确
现在为什么不能分解出0?通常,如果我键入类似 2 和 3 == 0 的内容,表达式的计算结果为 false,但语法在上面的示例中不应该类似地工作。所以我很困惑。
因为这里'它像二元运算一样发生而不是逻辑检查语句
(0 和 1) = 0 当 LCM = 24
if (LCM%x and LCM%y) == 0:
发生这种情况是因为此处的值为 0 和 1(Python 将其误认为是二元运算,但您想要其他东西)。
如果它像(24 和 36)那么它会 return 两个中的最大值!所以当你给Python/any语言条件时要小心!
但这里是检查 LCM 是否可以被 x 整除的值
if LCM%x==0 and LCM%y == 0:
是 24%24 == 0?是 36%24 ==0 吗?
PS : 使用默认的Python IDLE,这样简单的操作会让你看得更清楚!
在 python 中,0 == False
的计算结果为 True
。因此,当条件 (LCM%x and LCM%y)
为 False
时,(LCM%x and LCM%y) == 0
的计算结果为 True
。什么时候发生?每当值 LCM%x
或 LCM%y
中的 为零时。
在你的第二个例子中,你有 LCM%x==0 and LCM%y == 0
只有当 both LCM%x
和 LCM%y
是零。
无法理解因式分解 0 的布尔表达式。
x,y=24,36
LCM=1
counting=True
while counting:
if (LCM%x and LCM%y) == 0:
print('The LCM is {}'.format(LCM))
break
LCM+=1
LCM 计算结果为 24,这是错误的
但是这段代码给出了正确的 LCM:
x,y=24,36
LCM=1
counting=True
while counting:
if LCM%x==0 and LCM%y == 0:
print('The LCM is {}'.format(LCM))
break
LCM+=1
LCM为72,正确
现在为什么不能分解出0?通常,如果我键入类似 2 和 3 == 0 的内容,表达式的计算结果为 false,但语法在上面的示例中不应该类似地工作。所以我很困惑。
因为这里'它像二元运算一样发生而不是逻辑检查语句
(0 和 1) = 0 当 LCM = 24
if (LCM%x and LCM%y) == 0:
发生这种情况是因为此处的值为 0 和 1(Python 将其误认为是二元运算,但您想要其他东西)。
如果它像(24 和 36)那么它会 return 两个中的最大值!所以当你给Python/any语言条件时要小心!
但这里是检查 LCM 是否可以被 x 整除的值
if LCM%x==0 and LCM%y == 0:
是 24%24 == 0?是 36%24 ==0 吗?
PS : 使用默认的Python IDLE,这样简单的操作会让你看得更清楚!
在 python 中,0 == False
的计算结果为 True
。因此,当条件 (LCM%x and LCM%y)
为 False
时,(LCM%x and LCM%y) == 0
的计算结果为 True
。什么时候发生?每当值 LCM%x
或 LCM%y
中的 为零时。
在你的第二个例子中,你有 LCM%x==0 and LCM%y == 0
只有当 both LCM%x
和 LCM%y
是零。