How to generate random strings that have variable length
本问题已经有最佳答案,请猛点这里访问。
我想知道如何用Python打印随机字符串。我希望这是一个像"ayhbygb"这样的随机字符串,并且是随机长度的字母。比如,有一次它可以打印"A",下一次它可以打印"AiubFiub"或"Aiuhiu"等。
有人能告诉我怎么做吗?
但是,您可以这样做,您必须指定字符串的最大长度。您也可以为
1 2 3 4 5 6 7 | 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个测试用例:
1 2 3 4 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))) |
它们的输出是:
1 2 3 4 5 | wl crhxl uvl ty iuydl |
当然,您可以通过将
可能不是最优雅的,但这应该能做到。如果只需要小写,可以用string.ascii_小写字母替换"string.ascii_letters"。
1 2 3 4 5 6 7 8 9 10 11 12 | import random import string MIN_NUM_CHAR = 5 MAX_NUM_CHAR = 25 num_char = random.randint(MIN_NUM_CHAR, MAX_NUM_CHAR) rand_string ="" for i in range(num_char): rand_string += random.choice(string.ascii_letters) print(rand_string) |
可变字符串,可变长度:
1 2 3 4 5 6 7 8 9 10 11 12 | >>>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() |