如何生成具有可变长度的随机字符串

时间:2016-08-15 17:55:33

标签: python string random

我想知道如何在Python中打印随机字符串。 我希望这是一个像“ayhbygb”这样的随机字符串,并且是一个随机数量的字母。所以,有一次,它可以打印“a”,下次它可以打印“aiubfiub”,或“aiuhiu”等。

有人可以告诉我这是怎么做的吗?

3 个答案:

答案 0 :(得分:5)

您可以执行此操作,但是,您必须指定字符串的最大长度。您也可以随时为max_length生成随机数。

import random, string

def random_string(length):
   return ''.join(random.choice(string.lowercase) for i in range(length))

max_length = 5
print(random_string(rando‌​m.randint(1, max_length)))

以下是5个测试用例:

print(random_string(random.randint(1, max_length)))
print(random_string(random.randint(1, max_length)))
print(random_string(random.randint(1, max_length)))
print(random_string(random.randint(1, max_length)))
print(random_string(random.randint(1, max_length)))

他们的输出是:

wl
crhxl
uvl
ty
iuydl

您当然可以通过将max_length变量更改为您喜欢的任何内容来更改字符串的最大长度。

答案 1 :(得分:0)

变量字符串,可变长度:

>>>import random, string    
>>>max_rand_str_length = 10
>>> def genCustomString():
...    return ''.join(random.choice(string.lowercase) for _ in range(random.choice(range(1, max_rand_str_length))))
... 
>>> genCustomString()
'v'
>>> genCustomString()
'mkmylzc'
>>> genCustomString()
'azp'
>>> genCustomString()

答案 2 :(得分:0)

可能不是最优雅的,但这应该可以解决问题。如果你只想要小写,你可以用string.ascii_lowercase替换“string.ascii_letters”。

-U:lock:w:...