@FlakeSunrise

Выдает ошибку name «переменная» is not defined?

Вообщем, я только начинаю учиться писать на Python, но у меня появилась проблема, написав свой первый код, у меня появилась ошибка, если что я писал простой калькулятор, для всех действий, все действия работают идеально, но появляется проблема с округлением, когда я округляю число, все делается как надо(работает), но когда я делаю другое действие к примеру сложение, оно тоже делается, числа складываются появляется сумма, но выдает ошибку, связанную с округлением, якобы не может найти переменную, но повторюсь, когда числа округляю работает все идеально

from math import ceil as okrb
from math import floor as okrm
print(' Привет ты попал в приложение "Дебильный калькулятор v.1" ')
print(' Я хочу познакомить тебя со своими функциями, ты готов? ')
otvet = input(" Если ты готов - то пиши yes! " )
if otvet == "yes":
    print(" Ух ты, ну смотри. Я умею складывать, вычитать, умножать, делить числа. ")
    print( " Ну также я умею возводить их в степень и округлять. ")
otvet2 = input(" Вот мои команды: cложение, вычитание, деление, умножение, степень, округление. Выбирай! ")
if otvet2 == "сложение":
    a = float(input("Хорошо, введи тогда мне число к которому надо прибавить: "))
    b = float(input("Хорошо, введи мне число, которое надо прибавить: "))
    c = a + b
    print(" Ответ: " + str(c))
if otvet2 == "вычитание":
    a = float(input("Хорошо, введи тогда мне число из которого надо вычесть:: "))
    b = float(input("Хорошо, введи мне число, которое надо вычесть: "))
    c = a - b
    print(" Ответ: " + str(c))
if otvet2 == "деление":
    a = float(input("Хорошо, введи тогда мне число, которое нам надо разделить: "))
    b = float(input("Хорошо, введи мне число, на которое мы будем делить: "))
    c = a / b
    print(" Ответ: " + str(c))
if otvet2 == "умножение":
    a = float(input("Хорошо, введи тогда мне число, которое надо умножить: "))
    b = float(input("Хорошо, введи мне число на которое надо умножить: "))
    c = a * b
    print(" Ответ: " + str(c))
if otvet2 == "степень":
    a = float(input("Хорошо, введи тогда мне число которое надо возвести в степень: "))
    b = float(input("Хорошо, введи мне число на сколько нам возвести в степень: "))
    c = a ** b
    print(" Ответ: " + str(c))
if otvet2 == "округление":
    print(" Хорошо, тогда скажи, в какую сторону мне округлить твое число. В большую или меньшюю.")
    storona = input(" Если тебе надо округлить число в большую сторону, то напиши okrb, если в меньшюю okrm: ")
if storona == "okrb":
    a = float(input(" Хорошо, введи число которое мне надо округлить: "))   
    otvetokr1 = okrb(a)
    print(" Вот такое число у меня получилось: " + str(otvetokr1))
if storona == "okrm":
    a = float(input(" Хорошо, введи число которое мне надо округлить: "))
    otvetokr2 = okrm(a)
    print(" Вот такое число у меня получилось: " + str(otvetokr2))


5e4906cfdbf46597779554.png
5e4906dc800de077953858.png
  • Вопрос задан
  • 214 просмотров
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Потому что переменная storona определяется только когда выполняется это условие:
if otvet2 == "округление":
    print(" Хорошо, тогда скажи, в какую сторону мне округлить твое число. В большую или меньшюю.")
    storona = input(" Если тебе надо округлить число в большую сторону, то напиши okrb, если в меньшюю okrm: ")

определите переменную за пределами блока выше:
storona = None
if otvet2 == "округление":
    print(" Хорошо, тогда скажи, в какую сторону мне округлить твое число. В большую или меньшюю.")
    storona = input(" Если тебе надо округлить число в большую сторону, то напиши okrb, если в меньшюю okrm: ")
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы