【发布时间】:2021-01-28 13:54:40
【问题描述】:
所以我编写了这段代码来检查整数是否可以在没有休息的情况下进行划分,以及它的工作原理。 但我需要做出改变,这样才能奏效。我真的只是想了解为什么这个小改动完全颠倒了我的代码的结果。这是工作代码
x = input("Erster Teiler")
y = input("Zweiter Teiler")
z = int(x)%int(y)
z1 =int(y)%int(x)
if z == 0 or z1 == 0:
print("teilbar")
else:
print("nicht teilbar")
我对这个练习的第一次尝试是做完全相反的。如果我输入 2 个你不能除的数字,它 说它们是可分的。 我只想知道这些代码有什么不同。 如您所见,我所做的只是改变了我的第一个 if 条件的前提。
x = input("Erster Teiler")
y = input("Zweiter Teiler")
z = int(x)%int(y)
z1 =int(y)%int(x)
if z or z1 == 0:
print("teilbar")
else:
print("nicht teilbar")
【问题讨论】:
-
你能澄清你的问题吗?是什么让您认为
z和z == 0是等价的?您是否检查过print(z, z==0)的各种z值? -
正如@mistermiyagi 所说,
z or z1 == 0与z == 0 or Z1 == 0不同。作为替代方案,如果您只检查(Z * Z1) == 0 -
编译器不会像人类那样读取“z or z1 == 0”,它会看到 (z) 或 (z1 == 0),其中 (z) 被解释为 (z ! = 0)。你会得到一个等价于 (z != 0) 或 (z1 == 0) 的逻辑表达式。
-
谢谢你们的帮助,我真的很感激。你可能已经猜到我是这个领域的一个完整的初学者,我需要再次阅读基础知识。这就是为什么我要求澄清,即使我本可以把练习交给我的老师。我认为使用 (Z*Z1) == 0 可以很好地替代我使用的方法。
标签: python if-statement integer division