为什么我总是得到名称未定义错误?

2024-09-30 08:20:03 发布

您现在位置:Python中文网/ 问答频道 /正文

def RollTwoDice()
     die1 = random.randint(1,6)
     die2 = random.randint(1,6)

然后我有一个代码,根据掷骰子的数字显示骰子的图片

然后:

^{pr2}$

现在模具的显示效果非常好,唯一的问题是最后一行代码。我得到这个错误

     total = die1+die2

     NameError: name 'die1' is not defined

我以为die1和die2是在我运行myRoll=RollTwoDice行时定义的?我做错了什么?在


Tags: 代码def错误图片数字random骰子total
3条回答

变量die1die2是函数RollTwoDice的局部变量。只需添加一个return语句。您还需要使用括号来调用函数。您不需要在双引号中转义单引号。在

import random
def RollTwoDice():
  die1 = random.randint(1,6)
  die2 = random.randint(1,6)
  return die1, die2
print("Press 'enter' to roll two dice")
input()
die1, die2 = RollTwoDice()
total = die1 + die2
print("You rolled a total of",total)

这在Python3中应该有用。在

搜索“variable scope”或“local scope”以获取解释。在

  • RollTwoDice()不返回任何内容。在函数的末尾添加一行return die1, die2

  • 您需要定义函数的die1die2在函数的之外,您需要调用它,而不仅仅是提到它。将myRoll = RollTwoDice更改为die1, die2 = RollTwoDice()

die1和{}是局部变量,它们的作用域只是函数RollTwoDice

相关问题 更多 >

    热门问题