python随机生成字符串学习

发布时间:2019-08-25 09:32:48编辑:auto阅读(1322)

    所用到的函数学习

    string模块的三个函数

    >>> import string
    >>> string.letters
    'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
    >>> string.digits
    '0123456789'
    >>> string.printable
    '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
    >>>

    random模块的choice函数

    random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。有关sequence可以查看python手册数据模型这一章。下面是使用choice的一些例子:

    >>> print random.choice("学习Python")
    h
    >>> print random.choice(["JGood", "is", "a", "handsome", "boy"])
    JGood
    >>> print random.choice(("Tuple", "List", "Dict"))
    Dict

    join函数

    python join用来连接字符串

    >>> li = ['my','name','is','bob']
    >>> ' '.join(li)
    'my name is bob'
    >>> '_'.join(li)
    'my_name_is_bob'
    >>> ''.join(li)
    'mynameisbob'
    >>>

    随机生成密码

    #-*- coding:utf-8 -*-
    '''
    简短地生成随机密码,包括大小写字母、数字,可以指定密码长度
    '''
    #生成随机密码
    import random
    import string
    #python3中为string.ascii_letters,而python2下则可以使用string.letters和string.ascii_letters
    def GenPassword(length):
        chars=string.ascii_letters+string.digits
        return ''.join([random.choice(chars) for i in range(length)])#得出的结果中字符会有重复的
        #return ''.join(random.sample(chars, 15))#得出的结果中字符不会有重复的
    if __name__=="__main__":
        #生成10个随机密码 
        for i in range(10):
            #密码的长度为15
            print GenPassword(15)


关键字