我试图在这里做一个简单的添加功能。我从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))
我知道解决方案必须非常简单......我觉得自己像个白痴。
答案 0 :(得分:3)
您可以使用类来表示某种“钱包”对象。这将包含total
和add
函数的属性:
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.