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时出现错误。
答案 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
甚至更简单,无需使用变量win
,lose
和rand
:
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