【发布时间】:2014-11-14 17:17:55
【问题描述】:
如何从函数中的 INT 中减去 1?
这就是我正在尝试的:
try:
lives
except NameError:
lives = 6
else:
lives = lives-1
print("\nWrong!\nYou have " +str(lives)+ " lives remaining\n")
但它不起作用。
生命总是在 6 岁 :(
有什么想法吗?
更新:
def main():
used = []
print(blanks)
choice = input("\nEnter a letter:")
lives -= 1
print("\nWrong!\nYou have " +str(lives)+ " lives remaining\n")
used.append(choice)
main()
【问题讨论】:
-
怎么样:lives -= 1
-
您提到了一个功能,但没有在问题中显示。如果
print语句在函数外部,但您的try语句在函数内部,则可能存在范围问题。 -
整数是不可变的;
lives = lives - 1将在当前范围内重新分配名称lives,但不会更改底层对象。 -
如果我在函数中定义它会被覆盖,如果我在函数之外定义它会告诉我
UnboundLocalError: local variable 'lives' referenced before assignment -
你应该
return来自函数的新值,并在调用范围lives = some_func(lives)中重新分配名称。研究 Python 范围。