如何在另一个函数中使用已在另一个函数中定义的变量?

时间:2014-05-02 18:18:25

标签: python function global

def winOrLose():
   rand = random.randint(0,1)
   if rand == 1:
      win = 1
      return win
   elif rand == 0:
      lose = 0
      return lose

def scores():
    score = 0
    if win = 1:
       score += 1
    elif lose:
       score -= 1

在第二个函数中使用win和lost时出现错误。

1 个答案:

答案 0 :(得分:3)

没有必要在此函数之外使用此变量,因为它返回值。而是直接使用函数返回值:

def winOrLose():
   rand = random.randint(0,1)
   if rand == 1:
      win = 1
      return win
   elif rand == 0:
      lose = 0
      return lose

def scores():
    score = 0
    if winOrLose() == 1:
       score += 1
    else:
       score -= 1

甚至更简单,无需使用变量winloserand

def winOrLose():
    if random.randint(0,1) == 1:
        return True
    else:
        return False

def scores():
    score = 0
    if winOrLose():
        score += 1
    else:
        score -= 1

但还有一件事:你在函数score中对变量scores做了什么?现在它除了将局部变量score设置为1-1之外什么都不做,并且最后忘记它。也许您想要这样的东西从现有值计算新分数并返回新结果:

def calc_score(score=0):
    if winOrLose():
        return score += 1
    else:
        return score -= 1