Python3中的映射值 def valMap(x,最小输入,最大输入,最小输出,最大输出): 返回((x-输入最小值)*(输出最大值-输出最小值))/(输入最大值-输入最小值)+输出最小值 def限制(自身,输入): 如果-0.2

Python3中的映射值 def valMap(x,最小输入,最大输入,最小输出,最大输出): 返回((x-输入最小值)*(输出最大值-输出最小值))/(输入最大值-输入最小值)+输出最小值 def限制(自身,输入): 如果-0.2,python,python-3.x,math,map-function,Python,Python 3.x,Math,Map Function,这看起来与Python版本无关。您确定您的条件是否取决于您的条件?从我看到的情况来看,您在最后一个if语句中再次调用valMap函数,具体取决于第一个函数调用的结果。您打算改用elif吗?请提供示例输入和错误+预期输出“奇怪的数字”不会告诉我们任何信息。在Python2和Python3中,您发现哪些输入工作方式不同,您期望的输出(在Python2中得到)是什么,在Python3中得到的输出是什么?您可能想在limit函数中使用elif。每个分支中的that或return语句。这就解释了为什么只有

这看起来与Python版本无关。您确定您的条件是否取决于您的条件?从我看到的情况来看,您在最后一个if语句中再次调用valMap函数,具体取决于第一个函数调用的结果。您打算改用elif吗?

请提供示例输入和错误+预期输出“奇怪的数字”不会告诉我们任何信息。在Python2和Python3中,您发现哪些输入工作方式不同,您期望的输出(在Python2中得到)是什么,在Python3中得到的输出是什么?您可能想在limit函数中使用elif。每个分支中的that或return语句。这就解释了为什么只有最后一个有效。谢谢大家。当然应该是埃利夫。
def valMap(x, in_min, in_max, out_min, out_max):
    return ((x - in_min) * (out_max - out_min)) // (in_max - in_min) + out_min


def limit(self, input):

    if -0.2 <= input <= 0.2:
        input = 192
    if input < -0.2:
        input = valMap(input, -0.2, -1, 138, 192)
    if input > 0.2:
        input = valMap(input, 0.2, 1, 192, 242)
    return input