Python 有没有办法缩短这个代码?

Python 有没有办法缩短这个代码?,python,divide-by-zero,Python,Divide By Zero,我今天创建了这行代码,它决定一个数字是否等分 if (numerator / denominator * denominator) == numerator: print "Divides evenly!" else: print "Doesn't divide evenly." 然而,当除以0时,我遇到了一个问题,因为我仍然希望它通过观察分子,看看它是偶数还是奇数,来告诉我即使分母是0,它是否会除以。我想到了这个: if denominator != 0 and (numer

我今天创建了这行代码,它决定一个数字是否等分

if (numerator / denominator * denominator) == numerator:
    print "Divides evenly!"
else:
    print "Doesn't divide evenly."
然而,当除以0时,我遇到了一个问题,因为我仍然希望它通过观察分子,看看它是偶数还是奇数,来告诉我即使分母是0,它是否会除以。我想到了这个:

if denominator != 0 and (numerator / denominator * denominator) == 
numerator:
    print "Divides evenly!"
elif denominator == 0 and numerator % 2 == 0:
    print "Divides evenly!"
else:
    print "Doesn't divide evenly."

有没有办法缩短这个时间?此外,是否有任何方法不必添加新的“elif”语句?

简而言之,如果
分母是
0
,您希望它是
2

if denominator == 0:
    denominator = 2

if numerator % denominator == 0:
    print "Divides evenly!"
else:
    print "Doesn't divide evenly."
甚至更短:

if numerator % (denominator or 2) == 0:
    print "Divides evenly!"
else:
    print "Doesn't divide evenly."

简言之,如果
分母
0
,则希望它是
2

if denominator == 0:
    denominator = 2

if numerator % denominator == 0:
    print "Divides evenly!"
else:
    print "Doesn't divide evenly."
甚至更短:

if numerator % (denominator or 2) == 0:
    print "Divides evenly!"
else:
    print "Doesn't divide evenly."

分母不会在这里取消吗?我想这更适合于我假设您依赖于整除
/
,这是Py3中所必需的
分子/分母*分母)==分子
相当于
分子%分母==0
。除法
0
是未定义的,说它平均分配是没有意义的。我投票结束这个问题,因为它属于非主题,分母不会在这里取消吗?我认为这更适合于我假设你依赖整数除法
/
,这在Py3中是必需的
分子/分母*分母)==分子
相当于
分子%分母==0
。除以
0
是未定义的,说它平均分配是没有意义的。我投票结束这个问题,因为它属于使用
True
False
而不是
1
0
。使用有意义的名称。您可以直接返回条件的结果。虽然此代码段可以解决此问题,但它没有解释为什么或如何回答此问题。请,因为这确实有助于提高你的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。标记者/审阅者:使用函数重用代码,从而缩短代码。使用
True
False
而不是
1
0
。使用有意义的名称。您可以直接返回条件的结果。虽然此代码段可以解决此问题,但它没有解释为什么或如何回答此问题。请,因为这确实有助于提高你的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。标记者/审阅者:使用函数重用代码,从而缩短代码。谢谢!我一定会用这个!谢谢我一定会用这个!