Python在一个范围内做一个数字循环

2024-06-16 11:13:06 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我看到了这篇文章,on limiting numbers,但是我注意到如果它不在这个范围内,它会切断一个数字。在

有没有办法做到这一点:

variable = 25

如果你的范围是1-20,那么variable能变成5吗?在

或者如果variable = 41,它是否变成了1?在

我试过了:

 def loop(number, maxn, minn):
     if number > maxn:
         number = maxn - number
     return number

范围是0-20,数字是40,我得到了-20?!?在


Tags: loopnumberreturnifondef数字variable
2条回答

只是想明白了。

def loop(n, minn, maxn):

    while n > maxn:
        n = n - (maxn - minn)
    while n < minn:
        n = n + (maxn - minn)

    return n

我认为这应该适用于大多数情况,包括负数和范围。

一个选项是设置variable = (|variable| % (MAX - MIN + 1)) + MIN。这将给您一个介于MINMAX之间的数字。

请注意,只有当variableMAX和{}是非负整数,并且MAX >= MIN >= 0时,这种方法才始终有效。

原因如下:|variable| % (MAX - MIN + 1)必然是非负的,因为MAX - MIN + 1和{}是非负的,因此模必须是非负的。因此它的最低值是零。我们在后面加上MIN,因此总数最低的数字可以是MIN

至多,|variable| % (MAX - MIN + 1)MAX - MIN,这也是由于模运算符的性质。之后再加上MIN就得到了MAX。因此,最高输出将是MAX

没有variable将给出一个小于MIN或高于MAX的数,并且variable的数目总是相等的,因此n = (|variable| % (MAX - MIN + 1)) + MIN对于MIN和{}之间的所有{}。

相关问题 更多 >