如何在函数中重新分配变量 (python)
How do I re-assign a variable in a function (python)
我试过使用 global,但它似乎没有重新分配变量。抱歉,如果这个问题已经得到解答,我找不到答案。
每当我 运行 代码时,它会通过计算输出健康,但不会再次计算
例如如果健康是 10,我 运行 函数,我会得到 7。如果我重新 运行,我会得到另一个 7;它不会再下降了
def mon_attack(health, monDamage, defense):
print("The monster attacked!")
health = health - ((monDamage // defense) + 1)
print("You have " + str(health) + " health left!")
Health 是一个局部变量,它仅在功能持续期间存在。尽管您可能会调用该函数并传入另一个名为 health 的变量,但该变量在不同的范围内并且只是具有相同名称的不同变量,因此当您在函数中修改 health 时,您只会修改本地版本,而不是您调用该函数的版本。您可以做的是使用函数 return 攻击后的新健康值并将打印语句移到函数之外。
使用全局变量-删除“health”函数参数:
health = 100
def mon_attack(monDamage, defense):
global health
print("The monster attacked!")
health = health - ((monDamage // defense) + 1)
print("You have " + str(health) + " health left!")
我试过使用 global,但它似乎没有重新分配变量。抱歉,如果这个问题已经得到解答,我找不到答案。 每当我 运行 代码时,它会通过计算输出健康,但不会再次计算 例如如果健康是 10,我 运行 函数,我会得到 7。如果我重新 运行,我会得到另一个 7;它不会再下降了
def mon_attack(health, monDamage, defense):
print("The monster attacked!")
health = health - ((monDamage // defense) + 1)
print("You have " + str(health) + " health left!")
Health 是一个局部变量,它仅在功能持续期间存在。尽管您可能会调用该函数并传入另一个名为 health 的变量,但该变量在不同的范围内并且只是具有相同名称的不同变量,因此当您在函数中修改 health 时,您只会修改本地版本,而不是您调用该函数的版本。您可以做的是使用函数 return 攻击后的新健康值并将打印语句移到函数之外。
使用全局变量-删除“health”函数参数:
health = 100
def mon_attack(monDamage, defense):
global health
print("The monster attacked!")
health = health - ((monDamage // defense) + 1)
print("You have " + str(health) + " health left!")