Python 如何编写一个基于条件将整数加倍的循环

Python 如何编写一个基于条件将整数加倍的循环,python,Python,100000条卫星=0.001 btc somethingRandom(btc): #code btc = 0.001 satoshies = btc / 0.00000001 if somethingRandom(): #double somethingRandom(btc) else: #reset somethingRandom(btc) 如果somethingRandom返回true,我希望

100000条卫星=0.001 btc

somethingRandom(btc):
       #code

btc = 0.001
satoshies = btc / 0.00000001


if somethingRandom():
         #double 
         somethingRandom(btc)
else:
         #reset
          somethingRandom(btc)
如果
somethingRandom
返回true,我希望通过将btc的数量加倍,继续将satoshies的数量加倍

如果返回false,我想将btc重置为0.001

有什么想法吗? 谢谢。

像这样吗

def somethingRandom():
  return random.choice((True, False))

btc = 0.001

while True:
  if somethingRandom():
    btc *= 2
  else:
    btc = 0.001
    satoshies = btc / 0.00000001

下面是我将如何实现随机二项(真或假)函数:

def binomial(p=.5):
    '''return True with probability p, else False with probability 1-p'''
    return random.random() < p

如果您喜欢使用
itertools

import itertools

btc *= 2**(sum(itertools.takewhile(lambda x: somethingRandom(), itertools.repeat(1))))

如果somethingRandom()连续3次返回true,则必须加倍(0.001*2)3次,因此btc的值为0.008。我相信您的代码会将btc重置为0.001,因为您在somethingRandom()之后立即将值赋值为0.001。我编辑了我的主要帖子。我的错。通过将btc作为参数添加到函数中,您正在改变问题的性质,并且您的做法不一致。你应该把你的问题回复到原来的问题。如果你认为你需要改变你的问题,我建议你需要更具体地说明你想要什么。
import itertools

btc *= 2**(sum(itertools.takewhile(lambda x: somethingRandom(), itertools.repeat(1))))