Python:生成一串位。

Python:生成一串位。,python,join,bit,Python,Join,Bit,我正在尝试使用以下代码生成一个随机的位字符串 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'] 有人能告诉我我做错了什么吗 谢谢 您正在将结果加入循环本身。您可以取

我正在尝试使用以下代码生成一个随机的位字符串

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']
有人能告诉我我做错了什么吗


谢谢

您正在将结果加入循环本身。您可以取消加入
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))
import random
bitString = []
for i in range(0, 8):
    x = str(random.randint(0, 1))
    bitString.append(x)
print ''.join(bitString)
或者,更好的是,您可以像这样使用生成器表达式

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))
import random
bitString = []
for i in range(0, 8):
    x = str(random.randint(0, 1))
    bitString.append(x)
print ''.join(bitString)
修复您的代码:

bitList = []

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

bitString = ''.join(bitList)
但更像蟒蛇的是:

>>> from random import choice
>>> ''.join(choice('01') for _ in range(10))
'0011010100'

您可以将bitString声明为字符串变量(而不是附加到列表,然后转换为字符串):

我唯一的建议是:

>>> import random
>>> print ''.join(random.choice("01") for i in range(8))
11100000
>>> 
希望有帮助:)


干杯!Alex

您的代码是正确的,但遗漏了3个“单词”:导入随机打印