@tarroma9

Как правильно возвратить (return) значение в def?

Доброго времени суток, подскажите пожалуйста, что не так с возвратом значения "result" и что необходимо исправить в коде, чтобы в будущем не допускать такую ошибку ?

# Калькулятор Def
print("Вас привествует примитивный калькулятор!!! \n")


number_1 = int (input("Введите первое число    "))
znak = input ("Введите знак того, что сделать с этим числом ")
number_2 = int (input("Введите второе число    "))


def calculator (number_1, number_2, znak):
	if znak.lower == "*":
		result = number_1 * number_2
	
	elif znak.lower == "-":
		result = number_1 - number_2
	
	elif znak.lower == "+":
		result = number_1 + number_2
		
	elif znak.lower == "/":
		result = number_1 / number_2
	
	return result
	

calculator(number_1, number_2, znak)


Вас привествует примитивный калькулятор!!!

Введите первое число    23
Введите знак того, что сделать с этим числом -
Введите второе число    33

Traceback (most recent call last):
  File "C:\python\test222222222222.py", line 28, in <module>
    calculator(number_1, number_2, znak)
  File "C:\python\test222222222222.py", line 25, in calculator
    return result
UnboundLocalError: local variable 'result' referenced before assignment
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 1
@iriddy
Python, Ремонт и диагностика цифровой техники
В конкретном случае не вижу смысла создавать переменную.
Вы можете возвращать значение не объявляя переменной.
elif znak = '/' and number_2:
    return number_1 / number_2
else:
    return 'ОШИБКА'
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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