python模块–random

  • 2020 年 1 月 14 日
  • 筆記

random模块                                                                                                                                                 

    random顾名思义,用于生成随机字符串,具体用法如下

import random  lis = [1,2,3,4,5,6,7,8,9,10]    #随机生成浮点数  print(random.random())          #随机返回0~1之间的浮点数  print(random.uniform(1,10))     #随机返回1~10之间的浮点数    #随机生成整数  print(random.randint(1,10))         #随机生成1~10之间的整数  print(random.randrange(0,10,2))     #随机生成0~10之间的偶数  print(random.randrange(1,10,2))     #随机生成1~10之间的基数    #操作序列、字符串  ##从序列、字符串中随机返回一个元素  print(random.choice(lis))  print(random.choice('abcdefg'))    ##随机截取序列、字符串中指定长度片段  print(random.sample(lis,2))  print(random.sample('abcdefg',2))    ##打乱一个序列  random.shuffle(lis)  print(lis)

打印结果如下:

0.47626693393991737  4.0844448042717225  8  8  1  4  g  [9, 4]  ['f', 'a']  [7, 6, 1, 2, 10, 3, 4, 8, 5, 9]

例子:

#-*- coding:utf-8 -*-  #随机密码生成器,必须含有大小写字母、数字和符号  '''  (ASCII码)  数字:[48,57]  小写字母:[97,122]  大写字母:[65,90]  符号:[33,47]  '''  import random  pass_num = int(input("请输入密码长度:"))  my_num = pass_num-4  mast_list = []      #用于随机收集大小写字母、数字和符号的ASCII码各一个  ascii_list = []     #用于随机收集剩下的密码字符对应的ASCII码  passwd_list = []    #用于收集由ASCII码转换后的字符  number = range(48,58)  s_letter = range(97,123)  b_letter = range(65,91)  symbol = range(35,38)    def creat_mast(lis):      a = random.choice(lis)      mast_list.append(a)    creat_mast(number)  creat_mast(s_letter)  creat_mast(b_letter)  creat_mast(symbol)  random.shuffle(mast_list)    def creat_list(lis):      for i in lis:          ascii_list.append(i)    creat_list(number)  creat_list(s_letter)  creat_list(b_letter)  creat_list(symbol)    ascii_list = random.sample(ascii_list,my_num) + mast_list    for i in ascii_list:      a = chr(i)      passwd_list.append(a)    my_pass = "".join(passwd_list)  print('随机密码为:%s'%(my_pass))