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个“单词”:导入、随机和打印)