def boundThis(x):
min = 20
max= 100
boundX = int(x)
if (boundX > max):
boundX = boundX % max + min-1
if (boundX > max):
boundX-=max-1
else:
while(boundX < min):
boundX += max-min
return boundX
我试着把x限定在两个数字,20和100之间(不包括)。也就是说,一旦它达到100,它应该循环回20。在
我知道它是如何与while循环(while boundX<;min)一起工作的,但是使用模数运算符和编写正确的表达式时遇到了问题。在
例:boundThis(201)应该给我21,boundThis(100)应该给我20。在
请注意,
min
和max
已经是内置函数,因此不要用这些标识符命名变量,因为您无法执行以下操作(假设您没有尝试在指定的边界内生成一个数字列表):编辑:
对于wrap-around条件,可以将其视为一个数学问题。正如你所知道的,模运算符本质上是找到除数运算后剩下的余数,所以我们可以使用它。因此,如果偏移量为},那么基本情况非常简单。在
^{pr2}$0
到{但是你想让它偏离某个基值(
low
),所以你必须应用基础数学,把这个问题简化为上面的问题。我建议你在阅读下面的解决方案之前先自己解决这个问题。在相关问题 更多 >
编程相关推荐