使用参数运行总计 - python

时间:2018-02-17 22:14:50

标签: python python-3.x

我试图在这里做一个简单的添加功能。我从0开始计数。我想将add_credits(x)的参数添加到信用总额中,以保持运行总计。 for循环似乎不适合在这里使用,因为我不知道我会循环多少次。

所以我想在这里做的是,添加3. Credits = 3.添加4,信用= 7。

credits = 0
def add_credits(x):
    new_total = credits + x
    return new_total

print (add_credits(3))
print (add_credits(4)) 

我知道解决方案必须非常简单......我觉得自己像个白痴。

4 个答案:

答案 0 :(得分:3)

您可以使用类来表示某种“钱包”对象。这将包含totaladd函数的属性:

class Wallet:
    def __init__(self):
        self.total = 0

    def add_to_total(self, amount):
        self.total += amount


wallet = Wallet()
wallet.add_to_total(5)
print(wallet.total) # outputs 5

答案 1 :(得分:1)

在您的示例中,函数中的credits变量是local变量。这意味着它不会共享您在顶部分配的相同值。您需要将其标识为全局,以便它像这样工作:

credits = 0
def add_credits(x):
    global credits
    credits = credits + x
    return credits 

print (add_credits(3))
print (add_credits(4))

答案 2 :(得分:0)

当变量表示int时,函数中的代码不会更改传递给它的变量的值。

答案 3 :(得分:0)

如果确实想要增加函数中的credits变量,可以使用global

credits = 0


def add_credits(x):
    global credits
    credits += x


add_credits(3)
print(credits) # 3

add_credits(4)
print(credits) # 7

但不建议以这种方式使用global,所以我肯定会使用Evyatar's solution.