【发布时间】:2015-03-09 01:28:55
【问题描述】:
有人把这个例子带给我(python2):
num = int(input("num"))
den = int(input("den"))
quot = 0
rest = den
i = num
for i in range(i,i>den, -den):
quot = quot + 1
rest = i - den
print quot
print rest
代码运行良好,做它需要做的事情,并且不会产生错误。
我不明白为什么。对我来说,range() 需要一个下限和一个上限,而对我来说,i 是下限,而i>den 应该计算为布尔值?
上下文是一个使用for循环实现除法的教程函数。
【问题讨论】:
-
你能多加一点周围的代码吗?正如所写,我们不知道所有的先决条件(如
i和num的初始值)。 -
你可以在 for 循环中使用条件,但不能在范围函数中使用。
-
@MalikBrahimi 不,你可以,因为
True的计算结果为1,False的计算结果为0。但它肯定不会像 C 语言的for语句那样表现。它只是将迭代的停止点设置为0或1。 -
是的,我的意思是达到预期目的。
-
在我看来,编写此代码的人将 Python for-loop 语法与 C、Java、JS 等中的 for-loop 语法混合在一起。即使它在技术上是正确的,也绝对不是蟒蛇。