我查看了Python文档(可能会有误解),但没有看到不调用递归函数就能完成这个(请看下面)的方法。
我的目的是生成一个排除中间值的随机数。
换句话说,
想象一下,我希望X
是一个随机数,它不在
range(a - b, a + b)
范围内。我能否在第一次通过时做到这一点,
或者
1. 我必须不断生成一个数字,
2. 检查是否在range()
内,
3. 反复洗涤?
至于为什么我不想编写递归函数:
1. 它“感觉”不应该这样做。
2. 我正在处理的数字集可能实际上会变得相当大,而且...我听说堆栈溢出很糟糕,我可能只是过于谨慎了。
我相信有一种漂亮的、Python式的非递归方式来完成它。