使用python中的if语句有条件地增加整数计数

时间:2018-03-02 04:30:35

标签: python python-3.x if-statement global-variables

我试图增加一个整数的计数,因为if语句返回true。但是,当该程序运行时,它始终打印0.我希望n在程序第一次运行时增加到1。到第二次2,依此类推。

我知道你可以使用全局命令的函数,类和模块,但它不能用于if语句。

n = 0
print(n)

if True:
    n += 1

4 个答案:

答案 0 :(得分:4)

在递增之前打印n的值。考虑一下这个问题:

n = 0
print(n)

if True:
    n += 1

print(n)

如果您希望它永远运行(请参阅注释),请尝试:

n = 0
print(n)

while True:
    n += 1
    print(n)

或使用for循环。

答案 1 :(得分:3)

根据上一个答案的评论,你想要这样的东西:

n = 0
while True:
    if True: #Replace True with any other condition you like.
        print(n)
        n+=1   

修改

  

根据OP对此答案的评论,他想要的是数据持续存在,或者更准确地说是变量n要保持(或者保留它的新修改值) )在多次运行之间。

所以代码就是(假设Python3.x):

try:
    file = open('count.txt','r')
    n = int(file.read())
    file.close()
except IOError:
    file = open('count.txt','w')
    file.write('1')
    file.close()
    n = 1
print(n)

n += 1

with open('count.txt','w') as file:
    file.write(str(n))
 print("Now the variable n persists and is incremented every time.")
#Do what you want to do further, the value of n will increase every time you run the program

<强> 注: 对象序列化有很多方法,上面的例子是最简单的方法之一,你可以使用像pickle这样的专用对象序列化模块。

答案 2 :(得分:1)

如果您希望它仅与if语句一起使用。我认为你需要放入一个函数并调用自己,我们称之为递归。

def increment():
    n=0
    if True:
        n+=1
        print(n)
        increment()
increment()

注意:在此解决方案中,它将无限运行。 您也可以使用while循环或for循环。

答案 3 :(得分:0)

重新运行程序时,存储在内存中的所有数据都会被重置。您需要将变量保存在程序外部的磁盘上。

有关示例,请参见How to increment variable every time script is run in Python?

ps。如今,您可以简单地用bool做+ =:

a = 1
b = True
a += b  # a will be 2