我简化了我的问题,使用下面的代码来说明我的问题。
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,
我无法使用"全球苹果"或"全球水果",因为我希望能够购买一种以上的水果。我也无法使用"返回苹果",因为我想在功能中更改两个不同的变量。
如何编码它,以使变量通过我的函数变化?
您可以更改并返回函数中的两个变量。您可以在下面修改函数。
apples = 0
bananas = 0
euro = 10
dollar = 5
def buy(fruit, money):
fruit += 1
money -= 1
return fruit, money
apples, euro = buy(apples, euro)
功能将返回两个价值观的水果和金钱。它们的值将在返回后分配给全局变量。
由于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"])