目前,我说我有一个变量score
,每1秒连续添加一次。每当分数达到10的倍数(20,30,40,10等)时,语句在while循环内部执行一次到另一个变量的减号。例如:
def levelUp(score):
if score % 10 ==0 and score != 0:
height -= 2
return height
此函数在另一个循环中调用:
while True:
levelUp(score)
目的是让功能检查分数是否可以除以2,如果是,则减去高度。该函数不能在while True:
循环之外调用,因为它本身就是添加到score
变量的函数。有没有办法实现这个目标?
答案 0 :(得分:1)
所以看起来height
是一个在程序中其他地方定义的变量,我想你想要的东西如下:
def levelUp(score, height):
if score % 10 == 0 and score != 0:
height -= 2
return height
然后当您致电levelUp
时,请使用以下内容:
height = levelUp(score, height)
尝试从函数中修改外部变量可能会让Python变得有点棘手,最好避免使用该模式。有关此类问题的其他信息,请参阅此问题和最佳答案:
local var referenced before assignment
答案 1 :(得分:0)
您可以将while
和函数合并为一个:
score = 0
height = 100
while True:
if score % 10 == 0 and score!= 0:
height -= 2
score+=1
或者,您可以对您的功能执行以下操作:
def levelUp(score, height):
if score % 10 == 0 and score!= 0:
height -= 2
return height
score = 0
height = 100
while True:
height = levelUp(score, height)
score+=1