#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)
Я сократил ответ, который вам дал кто-то другой. Это немного медленно, когда я рассчитываю время, но я уверен, что все должно работать нормально. 🙂