【发布时间】:2019-03-23 14:52:17
【问题描述】:
我正在制作一个赌博程序(我知道这应该不会太难),并且想要在子程序中制作多个游戏。但是,python 似乎认为我的变量被分配在奇怪的地方。
我对子程序是半新的,但仍然存在一些问题。这是我正在使用的:
# variables and subroutines
money = 500
losses = 0
wins = 0
wlr = (wins,':',losses)
egg = True
def fiftyfifty(bet):
chance = random.randint(0,100)
if chance > 50:
losses += 1
print('You lose!')
money -= bet
print('You now have ',money)
return
else:
wins += 1
print('You win!')
money += bet
print('You now have ',money)
return
这就是它的名称:
elif gamechoice == 'fifty fifty':
print('You have $',money,'\n')
t(1)
bet1 = money+1
while bet1 > money:
bet1 = int(input('How much do you want to bet?\n'))
fiftyfifty(bet1)
我希望它只是通过,在输赢中添加一个计数,然后更新资金。但是,我收到此错误:
UnboundLocalError: local variable 'losses' referenced before assignment
如果我赢了,它会和local variable 'wins' 说同样的话。
如图所示,所有变量都分配在顶部,然后在子程序中引用。我完全不确定python如何认为我在分配之前引用了它?
如果有任何帮助,我将不胜感激,在此先感谢您!
【问题讨论】:
-
你能把整个代码贴出来吗?
-
pastebin.com/WkrPRPfb - 检查这个 pastebin 以获得整个代码
标签: python subroutine