当变量变为负数时,我试图提高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')
谢谢
我建议为你的变量使用getter / setter,并检查setter。这正是它们存在的原因
由于必须在错误变为负时引发错误,因此每次减少变量时都必须检查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)