Неверная передача значения переменной
При вытаскивании переменной из функции её значение действительно меняется, однако программа говорит, что значения старой и новой цены равны, что неверно. В чём может быть ошибка?
old_price = 0
current_price = 0
def change_price(old_price, current_price):
global var_price
var_price = old_price
current_price = int(input("введите новую стоимость: "))
return current_price, var_price
print(change_price(old_price, current_price))
if current_price > var_price:
print("Цена возросла!")
elif current_price == var_price:
print("Цена не изменилась")
else:
print("Цена уменшилась!")
Ответы (2 шт):
Автор решения: S. Nick
→ Ссылка
попробуйте так:
old_price = 0
current_price = 0
def change_price():
current_price = int(input("введите новую стоимость: "))
return current_price
#print(change_price(old_price, current_price))
current_price = change_price()
if current_price > old_price:
print("Цена возросла!")
elif current_price == old_price:
print("Цена не изменилась")
else:
print("Цена уменшилась!")
Автор решения: Zhihar
→ Ссылка
сделайте так:
print(change_price(old_price, current_price))
print(current_price, var_price)
и увидите свою ошибку
надо делать так:
current_price, var_price = change_price(old_price, current_price)
у вас просто
current_price- это параметр функции и как только вы его меняете он становится локальным, а не глобальным, поэтому вы и не видите его изменение снаружи функцииvar_price- его вне функции вообще не существует