如何调整此功能,如果它多次运行,它不会返回上一个方向?例如,如果它生成N
,则下次它不会返回N
。
import random
def random_direct():
directions=['N','S','E','W']
return random.choice(directions)
谢谢你的时间!
这个问题要求返回随机项而不打印它。
答案 0 :(得分:3)
import random
def random_direct(prev_direction=None):
directions = [direction for direction in ('N','S','E','W')
if direction != prev_direction]
return random.choice(directions)
答案 1 :(得分:1)
如果您可以像在另一个答案中那样传递上一个方向,那么它是最好的。如果你不能,你可以做一些hackery(我不推荐它):
def random_direct(_prev = [None]):
directions = [direction for direction in ('N', 'S', 'E', 'W')
if direction != _prev[0]]
res = random.choice(directions)
_prev[0] = res
return res
在没有任何参数的情况下调用该函数,例如random_direct()
。