当变量变为负数时,我试图提高ValueError
。我的问题是,此变量更改了程序中某些部分的值。仅使用一条raise
语句,如何能达到以下相同的结果?
import random
a = 5
while True:
a -= random.randint(0,10)
if a < 0:
raise ValueError('Cannot be negative')
a += random.randint(0,10)
if a < 0:
raise ValueError('Cannot be negative')
a -= random.randint(0,10)
if a < 0:
raise ValueError('Cannot be negative')
a += random.randint(0,10)
if a < 0:
raise ValueError('Cannot be negative')
谢谢
答案 0 :(得分:1)
我建议为变量使用getter / setter,然后检入setter。这正是它们存在的原因
答案 1 :(得分:0)
由于必须在错误变为负数时才引发错误,因此每次减小变量时都必须检查ValueError。添加后无需检查ValueError,因为如果它不是负数,则添加后就不会为负数。如果您只想在代码中仅放置raise ValueError('Cannot be negative')
行,则可以这样:
import random
a = 5
while True:
a -= random.randint(0,10)
if a < 0:
raise ValueError('Cannot be negative')
a += random.randint(0,10)