问题是不言自明的。
我试过了。
import random
number = "".join([str(random.randint(0,1)) for i in xrange(0,10)])
print number
是否有相同的内置功能?
答案 0 :(得分:12)
使用:
''.join(random.choice('01') for _ in xrange(10))
避免使用int-> str,或以其他方式使用randrange
(以排除完整位集),范围为2 ** 10,然后格式化为二进制字符串。
format(random.randrange(2**10), '010b')
另外,为避免溢出,您可以使用getrandbits
并指定10作为金额,例如:
format(random.getrandbits(10), '010b')
答案 1 :(得分:1)
选择0 ti 1023 包含范围内的随机int,并在基数2中格式化,最小宽度为10,前导0已填入。
format(random.randint(0,1023), '010b')
答案 2 :(得分:0)
我要投入另一个解决方案,创建一个仅包含1和0的实际(十进制)数字:
>>> import random, functools
>>> functools.reduce(lambda x, i: 10 * x + random.randrange(2), range(10), 0)
1011001010
答案 3 :(得分:-1)
OR,跳过十进制二进制转换:
from random import randint
def repeat(n):
if(n<=0):
return ''
n -= 1
return str(randint(0,1))+repeat(n)
最后只需调用repeat(10)
或任意数量的位。