Vij*_*Dev 17 python string random
我需要生成特定格式的随机文本字符串.想要一些想法,以便我可以用Python编写代码.格式为<8位数> <15个字符串>.
Jay*_*Jay 51
#!/usr/bin/python
import random
import string
digits = "".join( [random.choice(string.digits) for i in xrange(8)] )
chars = "".join( [random.choice(string.letters) for i in xrange(15)] )
print digits + chars
Run Code Online (Sandbox Code Playgroud)
编辑:喜欢使用random.choice比randint()更好的想法,所以我更新了代码以反映这一点.
注意:这假定需要小写和大写字符.如果只有小写,则将第二个列表理解更改为:
chars = "".join( [random.choice(string.letters[:26]) for i in xrange(15)] )
Run Code Online (Sandbox Code Playgroud)
显然,对于大写只有你可以翻转它,所以切片是[26:]而不是相反.
gim*_*mel 16
查看示例 - 配方59873:随机密码生成.
在食谱的基础上,这是您的问题的解决方案:
from random import choice
import string
def GenPasswd2(length=8, chars=string.letters + string.digits):
return ''.join([choice(chars) for i in range(length)])
>>> GenPasswd2(8,string.digits) + GenPasswd2(15,string.ascii_letters)
'28605495YHlCJfMKpRPGyAw'
>>>
Run Code Online (Sandbox Code Playgroud)
random.sample
是另一种选择.可以在python.org文档中找到的差异是random.sample
没有替换的样本.因此,random.sample(string.letters, 53)
会导致一个ValueError
.然后,如果你想生成八位数和十五个字符的随机字符串,你会写
import random, string
digits = ''.join(random.sample(string.digits, 8))
chars = ''.join(random.sample(string.letters, 15))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38955 次 |
最近记录: |