python随机生成字符串学习

2023-01-31 02:01:30 字符串 生成 随机

所用到的函数学

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)


相关文章