我使用下面的代码演示了我的问题,从而简化了我的问题。
apples = 0
bananas = 0
euro = 10
dollar = 5
def buy(fruit, money):
fruit += 1
money -= 1
buy(apples, euro)
print(apples)
print(euro)
buy(bananas, dollar)
print(bananas)
print(dollar)
我希望函数更改变量,以便上面代码的输出返回: 1, 9, 1, 4, 但是它输出: 0, 10 0, 5,
我不能使用“全球苹果”或“全球水果”,因为我希望能够购买多种水果。 我也不能使用“返回苹果”,因为我想在函数中更改两个不同的变量。
如何对它进行编码,以使变量在通过函数后发生变化?
答案 0 :(得分:2)
您可以在函数中更改和返回两个变量。您可以如下修改功能。
apples = 0
bananas = 0
euro = 10
dollar = 5
def buy(fruit, money):
fruit += 1
money -= 1
return fruit, money
apples, euro = buy(apples, euro)
该函数将返回水果和金钱两个值。返回后,它们的值将分配给全局变量。
答案 1 :(得分:0)
由于int
不是可变类型,因此您无法根据需要修改全局变量。一种可能的选择是使用词典存储您的全局数据,并将水果和金钱的名称传递给您的函数:
def buy(fruit, money):
fruits[fruit] += 1
monies[money] -= 1
fruits = {
"apples": 0,
"bananas": 0
}
monies = {
"euro": 10,
"dollar": 5
}
buy("apples", "euro")
print(fruits["apples"])
print(monies["euro"])
buy("bananas", "dollar")
print(fruits["bananas"])
print(monies["dollar"])