【发布时间】:2018-03-28 01:51:04
【问题描述】:
我正在 python3 中开发模块化排序器,并注意到在使用 mod 时与输入变量的符号有关的奇怪行为。我打算让它在除以循环长度后按余数对值进行排序。
即c = 4 / 14 = 0 r **4**", "c = 18 / 14 = 1 r **4**", and "c = 32 / 14 = 2 r **4**
所有这些都是第 4 个位置值,因为它们离开 4。但是,如果任何输入变量为负,则结果不是我想要的。关于它是如何工作的任何想法(我可能会在以后的编码中使用这个奇怪的功能)?
a = 4 #the value for sorting
b = 14 #the length of the cycle before it reaches the 0 position
def modS(val, cyc):
c = val % cyc
print(c)
modS(a, b)
例如,
a = 4
b = 14
打印4
a = -4
b = 14
打印10
a = 4
b = -14
打印-10
a = -4
b = -14
打印-4
这些打印出来的值可能对 pH 计算等有用,但对我来说不是。
【问题讨论】:
-
所以 Python 的行为就像文档中描述的那样?离谱。您的问题是什么?
-
我想知道这是如何工作的,以及如何更正输出以将位置作为循环中的绝对值。
标签: python-3.x operator-keyword modulo