Python学习笔记-常用模块介绍--random随机数函数

1.random模块基本使用

import random

print(random.random())  # (0,1)----float    大于0且小于1之间的小数

print(random.randint(1, 3))  # [1,3]    大于等于1且小于等于3之间的整数

print(random.randrange(1, 3))  # [1,3)    大于等于1且小于3之间的整数

print(random.choice([1, '23', [4, 5]]))  # 1或者23或者[4,5] # 只选一个

print(random.sample([1, '23', [4, 5]], 2))  # 列表元素任意2个组合 后面的参数2 是可以选两个

print(random.uniform(1, 3))  # 大于1小于3的小数,如1.927109612082716

item = [1, 3, 5, 7, 9]
random.shuffle(item)  # 打乱item的顺序,相当于"洗牌"
print(item)

2.应用场景?

  • 抽奖
  • 验证码

3.生成4位随机验证码,怎么实现?

 

import random

dic = ['a','b','c','d','e',1,2,3,4,5,6,7,8,9,0 ]

res = random.sample(dic,4)
print("生成的随机数是:",res)

4.验证码能否写的更好些?(自己写的)

  • 1.知道ord和chr的功能
  • # chr查看数字对应的字符串,ord查看字符串对应的数字
    # print(chr(65))  # 65 ==> A ; 90==>Z
    # print(ord("z")) # a = 97  ; z = 122

     

  • 2.生成随机数字,字母
  • # 生成随机数字
    print(random.randint(0,9))
    # 生成随机的a-z
    print(chr(random.randint(97,122)))
    # 生成随机的A-Z
    print(chr(random.randint(65,90)))

     

  • 3.生成4位验证码
  • # 生成4位随机验证码
    words = []
    for i in range(4):
        res = random.randint(0,2)
        if res == 0:    # 假设生成0,就生成随机的数字
            words.append(random.randint(0,9))
        elif res == 1:  # 假设生成1,就生成随机的a-z
            words.append(chr(random.randint(97,122)))
        else:   # 假设生成的是2,就生成随机的A-Z
            words.append(chr(random.randint(65,90)))
    
    result = ""
    for i in words:
        result += str(i)    # 转换为字符串
    
    print(result)

     

 5.验证码(进一步优化)

# 优雅的
res = ""
for i in range(4):
    num = str(random.randint(0,9))  # 随机数字
    word_a_z = chr(random.randint(97,122))  # 随机a-z
    word_A_Z = chr(random.randint(65,90))   # 随机A-Z
    res += random.choice([num,word_a_z,word_A_Z])    # 随机选择1个加到字符串里
print(res)

 

 

 

 

 

 

 

 

 

 

参考资料:

posted @ 2023-01-20 09:17  o蹲蹲o  阅读(55)  评论(0编辑  收藏  举报