所以我写了一些代码来掷三个软糖骰子(六边骰子的边是-1,-1,0,0,+1,+1)如果三个骰子加起来总共掷-3,我有一个函数,然后一次又一次地掷一个软糖骰子,从每个骰子的总数中取1,如果掷了-1以外的东西,我就退出,这样我得到一个“爆炸式下降”,使得总数不到-3的可能性,尽管可能性越来越小。
我的分解功能是:
def explodedown():
curval = -3
while 1:
newroll = rolldie()
if newroll != -1:
break
else:
curval = curval-1
return curval;
这似乎工作得很好,但我几乎觉得,如果我想写得更简单,应该有一些方法来写循环,更像:
while newroll == -1
newroll = rolldie()
curval = curval-1
然后循环自然中断,不需要if语句。问题是NEWLL在我们进入循环之前就不存在了,所以我认为这不会起作用。如果在循环开始之前添加另一个语句,可能是这样的:
newroll = rolldie()
while newroll == -1
newroll = rolldie()
curval = curval-1
不过,在那里放两次新的滚球线似乎不符合蟒蛇的本性。
思想?有没有一种方法可以简化我的分解函数并使其更具可读性?
最佳答案
你可以这样做:
while rolldie() == -1:
curval -= 1