Python: 生成一个比特串

3
我正在尝试使用以下代码生成一串随机的比特串。
bitString = []

for i in range(0, 8):
    x = str(random.randint(0, 1))
    bitString.append(x)
    ''.join(bitString)

然而,与其给我这样的东西:
10011110

我发现有这样的东西:

我得到了类似于这样的内容:

['1','0','0','1','1','1','1','0']

有人能告诉我我在做什么错了吗?
5个回答

4

你正在循环中加入结果。你可以取消缩进 join 行,像这样:

import random
bitString = []
for i in range(0, 8):
    x = str(random.randint(0, 1))
    bitString.append(x)
print ''.join(bitString)

或者更好的方法是使用生成器表达式,如下所示。
print "".join(str(random.randint(0, 1)) for i in range(8))

4

修复你的代码:

bitList = []

for i in range(0, 8):
    x = str(random.randint(0, 1))
    bitList.append(x)

bitString = ''.join(bitList)

但更符合Python风格的是这样写:
>>> from random import choice
>>> ''.join(choice('01') for _ in range(10))
'0011010100'

0
你可以将bitString声明为字符串变量(而不是附加到列表,然后转换为字符串):
bitString = ""
for i in range(0, 8):
    x = str(random.randint(0, 1))
    bitString += x

print bitString

0

我的一句话代码是:

>>> import random
>>> print ''.join(random.choice("01") for i in range(8))
11100000
>>> 

0
你的代码是正确的,但是缺少了3个“单词”:import、random和print。
import random
bitString = []
for i in range(0, 8):
    x = str(random.randint(0, 1))
    bitString.append(x)
print ''.join(bitString)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接