我的程序中有一个python检测到的错误。另外,我确信还有更多的错误。请修理^-^
我的节目:我的程序中有一个python检测到的错误。另外,我确信还有更多的错误。请修理^-^,python,python-2.7,Python,Python 2.7,我的节目: import random from random import randint print "Welcome to fishing game!" tries = 3 Fish = [] Fishlist = ["Shark", "Whale", "Boot", "Nothing"] Money = 0 randomfishvar = (random.choice(Fishlist)) def randomnum100(): randomnum100 =(randint(1,
import random
from random import randint
print "Welcome to fishing game!"
tries = 3
Fish = []
Fishlist = ["Shark", "Whale", "Boot", "Nothing"]
Money = 0
randomfishvar = (random.choice(Fishlist))
def randomnum100():
randomnum100 =(randint(1, 100))
print randomnum100
Money = Money + randomnum100
print str(Money) + "$"
def randomnum75():
randomnum75 = (randint(1, 75))
print randomnum75
Money = Money + randomnum75
print str(Money) + "$"
def randomnum50():
randomnum50 = (randint(1, 50))
print randomnum50
Money = Money + randomnum50
print str(Money) + "$"
def randomnum25():
randomnum25 = (randint(1, 25))
print randomnum25
Money = Money + randomnum25
print str(Money) + "$"
def randomnum0():
randomnum = 0
print randomnum
Money = Money + 0
print str(Money) + "$"
dowhat = raw_input("Tries, Fish, Money, Gofish? ")
if dowhat.lower() == "tries":
print "You currently have " + str(tries) + " tries."
if dowhat.lower() == "fish":
print Fish
if dowhat.lower() == "money":
print str(Money) + "$"
if dowhat.lower() == "gofish":
print randomfishvar
Fish.append(randomfishvar)
if randomfishvar == "Nothing":
randomnum0()
Fish.remove("Nothing")
if randomfishvar == "Shark":
randomnum75()
if randomfishvar == "Whale":
randomnum100()
if randomfishvar == "Boot":
randomnum25()
它给了我这样一个错误:
回溯最近一次呼叫上次:
文件,第52行,在
随机数m25
文件,第27行,随机编号25
金钱=金钱+随机数25
UnboundLocalError:分配前引用的局部变量“Money”
我怎样才能解决这个问题?
+
您能检测到我可以修复的任何其他错误吗?因为在我修复之前python不会检测到任何其他错误
谢谢 这是一个基本的范围问题。默认情况下,非局部变量在函数中具有只读访问权限,分配给与函数外部变量同名的变量将导致创建一个新的空局部变量 在每个函数的顶部添加一个全局货币行,以操作非本地货币变量中的数据,这是一个可能的解决方法。更简单的方法是将变量作为参数传递给函数 此外,虽然具有互斥条件的ifs序列本身在逻辑上不是错误的,但它们不是干净的代码,因为它们会导致进行大量不必要的检查。在这种情况下,请尝试使用elif
另外,在将来,如果你有胆量直截了当地要求其他人为你修改代码,那么最好至少简短地解释一下如果它正常工作,你希望它做什么。谢谢你的完美回答。我有一门关于UDE的课程,我最近的一堂课是关于示波器的。我真的什么都没得到,赛义德以后会研究的谢谢你的建议@阿卜杜拉阿尔扎比很乐意帮忙:如果你能将我的答案标注为已被接受,我将不胜感激。