无法更改python中if语句中方法变量的值

无法更改python中if语句中方法变量的值,python,python-2.7,Python,Python 2.7,当运行上述方法时,即使数据库中没有用户,它也不会打印“数据库中没有用户”。if块中的变量no_user警告未使用该变量 我理解这是由于范围的原因,如果no\u user变量是全局变量而不是方法变量,则可以解决这一问题。但在这种情况下,我需要它位于方法内部,并在db中没有用户时更改为True。我想,您应该修改部分,如下所示: def a(): no_user = False number_of_users = # gets number of users from db i

当运行上述方法时,即使数据库中没有用户,它也不会打印“数据库中没有用户”。if块中的变量
no_user
警告未使用该变量


我理解这是由于范围的原因,如果
no\u user
变量是全局变量而不是方法变量,则可以解决这一问题。但在这种情况下,我需要它位于方法内部,并在db中没有用户时更改为True。

我想,您应该修改部分,如下所示:

def a():
  no_user = False
  
  number_of_users = # gets number of users from db
  
  if number_of_users == 0:
    no_user = True

  if no_user:
    print("no users in db")
  else:
    print(number_of_users)

因为如果用户的数量>0,那么就有用户,没有用户应该为false

我看不出有任何问题。这是实际代码吗?局部变量
没有用户
在函数/方法中的任何地方都是绝对可更新的“我知道这是因为范围”为什么这么说?几乎可以肯定,这不是一个范围问题。你的逻辑没有道理,如果
用户数>0
,为什么会没有用户。。。?如果
number of_users==0,那么就不会有用户了。
@juanpa.arrivillaga仍然,在
no_user
@RajyawardhanSinghPanwar上不应该有一个“unused var”警告,不管你如何,你可以通过分配一个实际的数字,运行函数,使用不同的数字,非常清楚地为自己测试出来,看到你实际上可以改变这个值。除非你能提供答案,否则这个问题将被取消-topic@RajyawardhanSinghPanwar如果getNumberOfUsers()<1:或类似的方法,为什么不直接执行
。这意味着对数据库的查询结果直接输入if语句,而不是执行其他一些不必要的代码。。。它应该和现在一样工作。如果用户数为
0
,则
no\u user=True
。。。这有什么错?不过,为了确定,如果数据库不存在或者程序无法从文件中读取或创建列表,我会做
如果用户数==0,用户数==-1
,那么用户数可以返回-1,我没有看到问题被编辑。很抱歉无论如何,现在的答案是不相关的。而且,
如果用户数==0,用户数==-1,
没有任何意义。。。也许
。。。或者…
是的,它应该是
或者肯定是
。检查“不存在”条件应该是一个好的编程习惯。
  if number_of_users > 0:
    no_user = False