代码战(python)上的kata出现了奇怪的问题

代码战(python)上的kata出现了奇怪的问题,python,multiplication,Python,Multiplication,: 在这个简单的赋值中,你得到一个数字,并且必须使它为负数。但也许这个数字已经是负数了? 例如: 注: 数字可以是负数,在这种情况下不需要更改 未检查零(0)是否有任何特定符号。负零没有数学意义 好的,这个kata让我把任何数字变成负数,我知道我可以用if,但我想看到它是这样工作的: def make_negative( number ): number = ((number)*(-1)) return number 当我测试它工作时,但当我尝试它时,我得到了这样的结果:“

:

在这个简单的赋值中,你得到一个数字,并且必须使它为负数。但也许这个数字已经是负数了? 例如:

注:

  • 数字可以是负数,在这种情况下不需要更改
  • 未检查零(0)是否有任何特定符号。负零没有数学意义
好的,这个kata让我把任何数字变成负数,我知道我可以用if,但我想看到它是这样工作的:

def make_negative( number ):
    number = ((number)*(-1))
    return number
当我测试它工作时,但当我尝试它时,我得到了这样的结果:“9应该等于-9”,尽管这是我之前通过的一个基本测试用例(我在随机测试用例中也得到了相同的错误)。有什么想法吗?

要得到一个总是否定的结果,我建议使用combied和
-1
乘法

def make_negative(number):
    return -1 * abs(number)

print(make_negative(10))  # -10
print(make_negative(-10))  # -10
为了得到一个总是否定的结果,我建议使用combied和
-1
乘法

def make_negative(number):
    return -1 * abs(number)

print(make_negative(10))  # -10
print(make_negative(-10))  # -10

是的,这是一件奇怪的事情,当我在任何其他编译器中尝试它时,它工作得完美无缺,当我在codewars中尝试它时,我得到了这样一句话:“基本测试用例测试通过9应该等于-9测试通过在0.02毫秒内完成”。如果这个数字是负数(-9),那么你的函数使它成为正数。这可能会使它在某些测试用例中失败(即,当函数应该是-9时返回9)。虽然我们只能猜测,因为不清楚预期的结果和测试用例是什么。我认为您需要发布kata的确切文本。使用
abs()
的答案应该有效,您复制它时一定是做错了什么。您的代码将
-5
变成
5
,应该保留为
-5
。下面的答案应该是可行的。是的,这是一件奇怪的事情,当我在任何其他编译器中尝试它时,它工作得完美无缺,当我在codewars中尝试它时,我得到了这样的结论:“基本测试用例测试通过9应该等于-9测试通过在0.02毫秒内完成”。如果数字为负(-9),那么你的函数将其设置为正。这可能会使它在某些测试用例中失败(即,当函数应该是-9时返回9)。虽然我们只能猜测,因为不清楚预期的结果和测试用例是什么。我认为您需要发布kata的确切文本。使用
abs()
的答案应该有效,您复制它时一定是做错了什么。您的代码将
-5
变成
5
,应该保留为
-5
。下面的答案应该有用。是的,它仍然很糟糕,我会咬紧牙关,使用如果我猜,谢谢你的评论,祝你有一个美好的一天sir什么是
if
语句比这个更好@Nafikos是的,它仍然是一团糟,我会咬紧牙关使用如果我猜,谢谢你的评论,祝你有一个美好的一天sir什么是
if
语句比这更好@纳菲科斯