воссоздание средства поиска абсолютных значений не работает должным образом

#python #python-3.x #function #absolute-value

#python #python-3.x #функция #абсолютное значение

Вопрос:

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

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

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

 >>> absolute(-12)
-12
 

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

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

Спасибо!

Ответ №1:

Здесь вы не присваиваете .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)
 

Комментарии:

1. numb = numb.replace это опечатка. Я изменю это

2. ну, я знаю об abs, и я просто пытался воссоздать его

Ответ №2:

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

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