Python 当我将状态设置为false时,为什么程序没有中断while循环?

Python 当我将状态设置为false时,为什么程序没有中断while循环?,python,random,Python,Random,我是python新手,我刚刚创建了一个简单的随机数字猜测游戏 简单地说,要打破while循环,用户必须猜测正确的数字或达到最大尝试次数,即3次 但是,当我调用函数检查尝试次数时,代码似乎没有中断循环。有没有办法打破while循环而不调用函数 由于您的方法返回state的值,因此需要将此新值分配给变量。将两个相关行更改为以下内容: gameState = maxAttempts(userAttempts, gameState) 编辑: 在检查其他答案后,我意识到您的函数定义缺少以下内容: el

我是python新手,我刚刚创建了一个简单的随机数字猜测游戏

简单地说,要打破while循环,用户必须猜测正确的数字或达到最大尝试次数,即3次

但是,当我调用函数检查尝试次数时,代码似乎没有中断循环。有没有办法打破while循环而不调用函数


由于您的方法返回state的值,因此需要将此新值分配给变量。将两个相关行更改为以下内容:

gameState = maxAttempts(userAttempts, gameState)
编辑: 在检查其他答案后,我意识到您的函数定义缺少以下内容:

else:
    return True
在maxAttempts中更新状态时,只需更改局部变量状态的值

您希望返回更新后的值并按照更实用、更纯粹的函数方法重新分配它:

def flip(state):
  return False if state else True

state = True
state = flip(state)
print(state) # => False
您正在maxtures函数中设置state=False。 我想你是在假设这会自动使gameState=False。 这是不正确的。 您必须按以下方式调用函数:

gameState=MaxAttemptSuserAttents,gameState

def flip(state):
  state = False if state else True

state = True
flip(state)
print(state) # => True
def flip(state):
  return False if state else True

state = True
state = flip(state)
print(state) # => False