Python3
import random
import string
def get_random_string(length=6, digits=True, lowercase=False, uppercase=False, punctuation=False):
'''
获取随机字符串
Args:
length: 字符个数 number
digits: 是否使用数字 bool
lowercase: 是否使用小写字母 bool
uppercase: 是否使用大写字母 bool
punctuation: 是否使用特殊字符 bool
Returns: [status: bool, code: string]
'''
optional_characters = ''
if digits:
optional_characters += string.digits
if lowercase:
optional_characters += string.ascii_lowercase
if uppercase:
optional_characters += string.ascii_uppercase
if punctuation:
optional_characters += string.punctuation
if optional_characters == '':
return False, optional_characters
else:
random_string = ''.join(random.sample(optional_characters, length))
return True, random_string
if __name__ == '__main__':
is_success, code = get_random_string(6, lowercase=True)
if is_success:
print(code)
string模块
>>> import string
>>> dir(string)
['Formatter', 'Template', '_ChainMap', '_TemplateMetaclass', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_re', '_string', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation', 'whitespace']
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>>
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>>
>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>>
>>> string.digits
'0123456789'
>>>
>>> string.hexdigits
'0123456789abcdefABCDEF'
>>>
>>> string.octdigits
'01234567'
>>>
>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
>>>