从[A-z]生成飞行中的字符串

时间:2011-05-30 09:58:45

标签: python random

我想知道什么是最简单的方法来编写从1到50生成数字的方法,然后依赖生成的数字返回我的字符串如下:

Abcdef如果生成的数字是6
Abcdefghi如果生成的数字为9。

我正在使用python 3.2

1 个答案:

答案 0 :(得分:8)

有一些方法,最简单的方法:

>>> import string
>>> import random
>>> string.ascii_letters[:random.randint(1, 50)].title()
'Abcdefghijklmnopq'
>>> string.ascii_letters[:random.randint(1, 50)].title()
'Abcdefghijklmnopqrstuvwxyzabcdefghijklmnopq'
>>> string.ascii_letters[:random.randint(1, 50)].title()
'Abcdefghijklmnopqrs'    

或者你可以选择itertools

>>> import string
>>> import random
>>> from itertools import islice, cycle
>>> def randstr():
...     return ''.join(islice(cycle(string.ascii_lowercase),
...                           random.randint(1, 50))).title()
...
>>> randstr()
'Abcdefghijklmnopq'
>>> randstr()
'Abcdefghijklmnopqrstuvwxyzabcdefghijklmnopq'
>>> randstr()
'Abcdefghijklmnopqrs'