Программа с абсолютным значением

#python #python-3.x

#python #python-3.x

Вопрос:

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

 print("Welcome to the ABSOLUTE-VALUEINATOR")
num=float(input("Enter number to find absolute value: "))

if num<=0:
    new_num=num*-1
    print("The absolute value is: " str(new_num))

else:
    print("The absolute value is: "  str(new_num))
  

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

1. Какова точная ошибка?

2. Если num > 0 , new_num никогда не определяется.

3. В вашем else блоке вы пытаетесь распечатать new_num , но вы никогда не присваивали ему значение.

4. Вы совершенно правы @khelwood, я серьезно сомневался в том, что я узнал, но это имеет смысл. Теперь это работает, спасибо 🙂

Ответ №1:

Самым простым решением было бы избежать определения новой переменной для new_num . Таким образом, логика будет:

  1. Преобразуйте пользовательский ввод в float
  2. Если данное число отрицательное, умножьте его на -1
  3. Выведите результат

Таким образом, код будет выглядеть следующим образом:

 print("Welcome to the ABSOLUTE-VALUEINATOR")

num = float(input("Enter number to find absolute value: "))

if num < 0:
    num *= -1

print("The absolute value is: "  str(num))
  

Однако здесь все еще есть проблема. Если пользователь вводит целое число, эта программа выведет значение с плавающей точкой.

например, ввод: 125 Вывод: 125.0

Если вы просто хотите убрать отрицательный знак, вы можете просто выполнить следующее:

 print("Welcome to the ABSOLUTE-VALUEINATOR")

num = input("Enter number to find absolute value: ")

num = num.strip('-')

print("The absolute value is: "   num)
  

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

1. Я никогда не видел функцию .strip() в Python, спасибо

Ответ №2:

Просто требуется небольшое изменение. new_num num в остальное, и оно должно работать нормально:

 print("Welcome to the ABSOLUTE-VALUEINATOR")
num=float(input("Enter number to find absolute value: "))

if num<=0:
    new_num=num*-1
    print("The absolute value is: " str(new_num))

else:
    print("The absolute value is: "  str(num))
  

Это связано с тем, что new_num определяется при условии if, и если условие равно false, оно никогда не определяется. Однако хорошим подходом является использование одной и той же переменной как для измененного числа, так и для фактического ввода, что позволит избежать путаницы:

 print("Welcome to the ABSOLUTE-VALUEINATOR")
num=float(input("Enter number to find absolute value: "))

if num<=0:
    num=num*-1
    print("The absolute value is: " str(num))

else:
    print("The absolute value is: "  str(num))