воссоздание искателя абсолютного значения не работает должным образом

Я написал код, который дает абсолютное значение любого числа, вот код:

def absolute(num):
    numb = str(num)
    numb.replace("-","")
    numb = int(numb)
    return numb

При использовании он дает одно и то же целое число:

>>> absolute(-12)
-12

Когда я выполнял функцию шаг за шагом, я обнаружил, что есть проблема в функции int, где строка 12 преобразуется в -12.

Я знаю другие способы сделать это, но если вы можете объяснить, почему это происходит, и это было бы лучше, поскольку я могу понять, что происходит.

Спасибо!


person POINT ONE    schedule 27.11.2020    source источник


Ответы (2)


Здесь вы не присваиваете возвращаемое значение .replace переменной:

def absolute(num):
    numb = str(num)
    numb = numb.replace("-","")
    numb = int(numb)
    return numb

Короче:

def absolute(num):
    return int(str(num).replace('-',''))

И еще одна странная вещь, разве ты не знаешь о abs() LOL?

abs(-12)
person programmer365    schedule 27.11.2020
comment
numb = numb.replaceопечатка. я изменю это - person POINT ONE; 27.11.2020
comment
хорошо, я знаю об прессе, и я просто пытался воссоздать его - person POINT ONE; 07.12.2020

absolute = lambda x : int(str(x).replace('-',''))
absolute(-5)

Я сократил ответ, который вам дал кто-то другой. Это немного медленно, когда я определяю время, но я уверен, что оно должно работать нормально. :)

person sfdfsdfsdg    schedule 03.12.2020