【发布时间】:2013-04-08 23:06:23
【问题描述】:
我正在尝试使用函数(这显然是我天生不擅长的东西)并试图从第一个获取返回语句信息,然后在第二个中使用它。两者都用于掷骰子,所以第一个函数是返回第一组,然后在第二个函数中使用,让用户可以选择重新掷骰。我在这个实现中做错了什么,它没有识别原始的模组列表?
def rollDie():
die1 = 2
die2 = 2
die3 = 2
die4 = 4
die5 = 5
dieset = [die1,die2,die3,die4,die5]
print(dieset)
return dieset
def reRoll1():
rollDie()
reroll1 = input("Would you like to reroll? Yes or No: ")
if reroll1 == "no":
dieset = [die1,die2,die3,die4,die5]
else:
count = 0
times = int(input("How many die would you like to reroll? "))
while count < times:
whichreroll = input("Reroll die: ")
if whichreroll == "1":
die1 = random.randint(1,6)
else:
die1
if whichreroll == "2":
die2 = random.randint(1,6)
else:
die2
if whichreroll == "3":
die3 = random.randint(1,6)
else:
die3
if whichreroll == "4":
die4 = random.randint(1,6)
else:
die4
if whichreroll == "5":
die5 = random.randint(1,6)
else:
die5
dieset = [die1,die2,die3,die4,die5]
count += 1
print(dieset)
return dieset
reRoll1()
它告诉我“在赋值之前引用了局部变量 'die1'”,但 rollDie() 先出现。如果有人可以向我解释这一点,将不胜感激:D
【问题讨论】:
-
die1,die2, ... 是在rollDie函数中定义的,所以你不能在reRoll1函数中引用它们,请修正你的代码格式。