如何在python中解决输入变量为(-5,-6)而预期输出为(60,59)的问题[关闭]

rdlzhqv9  于 2023-04-19  发布在  Python
关注(0)|答案(3)|浏览(173)

**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。

这个问题是由一个错字或一个无法再复制的问题引起的。虽然类似的问题可能是on-topic在这里,但这个问题的解决方式不太可能帮助未来的读者。
14小时前关闭
Improve this question
我正在努力解决下面的问题,输入变量为(-5, -6),输出应为(60, 59)
这是我使用的代码,我得到的输出是(60, 359)

def function_3(a,b):
    a = abs(a) * abs(b) * 2
    b = abs(b) * abs(a) - 1
    return (a,b)

输入值为(-5, -6)
预期输出为(60, 59)

1l5u6lss

1l5u6lss1#

问题是在计算b之前重新分配a。

def function_3(a,b): #here a=-5 , b=-6 
    a = abs(a) * abs(b) * 2 #here a=-5 , b=-6 -> a=60
    b = abs(b) * abs(a) - 1 #here a=60 b=-6 -> a=359
    return (a,b)

由于不清楚你想做什么,一个可能的简单解决方案是使用一个临时变量,如:

def function_3(a,b):
    tmpA=a
    a = abs(a) * abs(b) * 2
    b = abs(b) * abs(tmpA) - 1
    return (a,b)
5ssjco0h

5ssjco0h2#

你正在覆盖函数第一行中的变量a。尝试:

def function_3(a,b):
x = abs(a) * abs(b) * 2
y = abs(b) * abs(a) - 1
return (x,y)
lbsnaicq

lbsnaicq3#

看起来你的函数中有一个小错误。函数的第二行在计算B的新值时使用了a的更新值。你应该将a和b的绝对值存储在单独的变量中以避免这个问题。下面是更正后的函数:

def function_3(a, b):
    abs_a = abs(a)
    abs_b = abs(b)
    a = abs_a * abs_b * 2
    b = abs_b * abs_a - 1
    return (a, b)

相关问题