Reputation: 11
I need help, these are the errors: what am I doing wrong?
Traceback (most recent call last):
File "python", line 64, in <module>
File "python", line 6, in walmart
File "python", line 28, in shopping
File "python", line 53, in drink
File "python", line 61, in total_price
NameError: global name 'price' is not defined
My code:
def walmart():
print "Hello welcome to the store!"
answer = raw_input("What's your name?")
if len(answer) > 0:
print "okay great %s, Lets go!...." % (answer)
shopping()
else:
print "Sorry try typing something"
walmart()
def shopping():
print "Ok lets get shopping"
shop_list = {"pizza" : 10.00 , "fries" : 15.00 , "burger" : 15.00}
print "Here are a list of food avaliable..."
print shop_list
ans1 = raw_input("Please select your item...").lower()
price = shop_list[ans1]
if "pizza" in ans1:
print "Your current price is... " + str(shop_list[ans1])
drink(price)
elif "burger" in ans1:
print "Your current price is... " + str(shop_list[ans1])
drink(price)
elif "fries" in ans1:
print "Your current price is... " + str(shop_list[ans1])
drink(price)
else:
print "Please type something on the list..."
shopping()
return price
def drink(price):
print "Okay let's pick you a drink"
drink_list = {"water" : 1 , "soda" : 2 , "tea" : 3}
print "Here is a list of drinks..."
print drink_list
ans2 = raw_input("Please type your choice here...").lower()
price_drink = drink_list[ans2]
if "water" in ans2:
print "Great healthy choice!"
total_price(price_drink)
elif "soda" in ans2:
print "Not that heaalthy but whatever floats your boat!"
total_price(price_drink)
elif "tea" in ans2:
print "OOOOO Tea great choice "
total_price(price_drink)
else:
print " Try again!"
drink(price)
return price_drink
def total_price(price_drink):
totalprice = drink(price) + shopping()
print "Thanks for shopping....\nHere is your total price..."
print totalprice
walmart()
Upvotes: 1
Views: 66
Reputation: 2985
You don't transfer variables from one function to another. If you want to use a variable in multiple function what you can do is define that variable globally and then use it in different functions
global_var = 10
def func1():
global global_var
#rest of the function
def func1():
global global_var
#rest of the function
UPDATE I was thinking about the comment below and I thought I should share this with you. Although in your case global variable seems like a good choice but keep in mind that using globals are not considered as good practice. So I would recommend that you use parameter passing instead. I would recommend you go through this http://www.learncpp.com/cpp-tutorial/4-2a-why-global-variables-are-evil/
Upvotes: 2
Reputation: 876
The problem is your variable "price" is local variable and exist only inside the function, therefore in function total_price, variable "price" does not exist. You could fix by making variable "price" a global variable by defining it outside of functions.
# Before functions
price = 0
# your functions go here
def ......
Upvotes: 2