我需要帮助,这些是错误:我做错了什么?
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
我的代码:
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()
答案 0 :(得分:2)
问题是你的变量&#34;价格&#34;是局部变量,只存在于函数内部,因此在函数total_price,variable&#34; price&#34;不存在。您可以通过变量&#34; price&#34;来解决问题。通过在函数之外定义它来实现全局变量。
# Before functions
price = 0
# your functions go here
def ......
答案 1 :(得分:2)
您没有将变量从一个函数转移到另一个函数。如果你想在多个函数中使用一个变量,你可以做的是全局定义该变量,然后在不同的函数中使用它
global_var = 10
def func1():
global global_var
#rest of the function
def func1():
global global_var
#rest of the function
更新我在考虑下面的评论,我想我应该和你分享。虽然在你的情况下全局变量似乎是一个不错的选择,但请记住,使用全局变量不被认为是一种好的做法。所以我建议您使用参数传递。我建议你仔细阅读http://www.learncpp.com/cpp-tutorial/4-2a-why-global-variables-are-evil/