我正在尝试编写一个生成随机字符串的代码,但我刚刚开始编码,所以我不希望代码太复杂。
import random, string
randomthing = random.choice(string)
print(randomthing(10))
但它一直说长度(len)没有定义。我该怎么办?
答案 0 :(得分:14)
如果您想生成唯一字符串:
import uuid
print uuid.uuid4() # e3c8a1c3-9965-4356-9072-1002632a96e1
print uuid.uuid4().hex # e3c8a1c39965435690721002632a96e1
答案 1 :(得分:5)
string
模块没有len
你可能想尝试这个:
Python2:
rand_str = lambda n: ''.join([random.choice(string.lowercase) for i in xrange(n)])
# Now to generate a random string of length 10
s = rand_str(10)
Python3:
rand_str = lambda n: ''.join([random.choice(string.ascii_lowercase) for i in xrange(n)])
# Now to generate a random string of length 10
s = rand_str(10)
random.choice
返回单个字符,使用join
函数连接10个此类字符。
编辑
lambda n : ...
创建一个lambda函数,以n
为参数。
''.join(sequence)
将序列连接到一个字符串中,它们之间有空字符串(''
),即它只是将字符连接成单词。
例如'.'.join(['a','b','c'])
将返回a.b.c
。
答案 2 :(得分:2)
这已在Random strings in Python中得到解答 从(例如)小写字符生成字符串:
import random, string
def randomword(length):
return ''.join(random.choice(string.lowercase) for i in range(length))
结果:
>>> randomword(10)
'vxnxikmhdc'
>>> randomword(10)
'ytqhdohksy'
答案 3 :(得分:1)
每当我想到随机字符串时,它都会让我想起Lorem Ipsum。它存在loremipsum python package,你可以这样使用:
from loremipsum import get_sentences
sentences_list = get_sentences(5)
如果你不介意字符串中char的确切数量,那么生成看起来像句子的随机字符串可能是一个很好的解决方案。
答案 4 :(得分:1)
第1步:
使用random.randint(97,122)
第2步:
使用str(unichr(<random number>))
第3步:
将字符串附加到最终字符串
类似的东西:
randomString=""
for i in range(10):
randomString += (str(unichr(random.randint(97,122)))) #intended to put tab space.
print randomString #I'm new to Stackoverflow