从[Az]生成飞行中的字符串

use*_*618 6 python random

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

Abcdef如果生成的数字为9,
Abcdefghi则生成的数字为6.

我正在使用python 3.2

bra*_*ers 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'    
Run Code Online (Sandbox Code Playgroud)

或者你可以去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'    
Run Code Online (Sandbox Code Playgroud)