Python:调用包含变量的函数时,变量是未定义的

时间:2014-06-27 16:05:34

标签: python

几周前我刚刚开始了我的第一个编程课程,我很尴尬地说我很困难。我们必须创建一个程序(用我的教授的话来说):

  

模拟两个骰子的滚动。使用随机生成的整数来表示名为point的函数中每个骰子的滚动。返回卷的组合值。在main中使用一个循环来掷骰子五次并报告每个结果。

所以,尽管我正在调用包含该变量的函数,但我尽力而为地继续得到同样的问题,它告诉我我的变量total未定义。

我将以下代码提交给了我的教授,后者又回复了:

  

骰子计划已经结束。返回一个卷的总数。在main中调用point并捕获返回的值以进行打印。

所以他说要在我的point函数中调用函数main(至少我认为,我是),但它仍然无法读取我的重要变量来完成此操作

import random

min=1
max=6



def main():
  for roll in range(5):
    point()
    print(total)


def point():

  roll=random.randint(min, max)
  roll2=random.randint(min, max)
  total=roll+roll2
  return total

main()

2 个答案:

答案 0 :(得分:1)

main函数内,此行:

point()

不会使当前范围内的total可用。相反,它只是调用函数point,然后丢弃其返回值。

您需要通过将此返回值分配给名为total的变量:

来捕获此返回值
def main():
  for roll in range(5):
    ################
    total = point()
    ################
    print(total)

现在,当您执行print(total)时,total将被定义并等于point()的值。

答案 1 :(得分:1)

您尝试引用仅存在于point()函数范围内的变量。但是你不需要,因为你无论如何都要返还价值。

试试这个。

from random import randint
def rollD6():
    return randint(1,6)

def point():
    return rollD6()+rollD6()

def main():
    for roll in range(5):
        print point()

main()