Python学习_random模块使用
生成随机数模块:random
作用:生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等。
random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。
random.uniform()正好弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限。
random.randint()随机生一个整数int类型,可以指定这个整数的范围,同样有上限和下限值,python random.randint。
random.choice()可以从任何序列,比如list列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。
random.shuffle()如果你想将一个序列中的元素,随机打乱的话可以用这个函数方法。
random.sample()可以从指定的序列中,随机的截取指定长度的片断,不作原地修改。
'''随机函数,random生成的只能是数,不是可迭代对象没有方法.__iter__()''' import random#随机生成数字 a = random.random() #随机生成0到1中间的小数 a = random.randint(1,3) #随机生成[1,3]1到3三个数的任意一个,两个参数必须写,单独写一个报错TypeError: randint() missing 1 required positional argument: 'b' a = random.randrange(3) #随机生成(0,2]三个数的任意一个 a = random.choice([1,3,3,[33,44,]]) #随机显示序列中的元素 a = random.uniform(1,3) #随机产生实数(整数、小数、无限循环小数)
list_t = [1,3,4,'sigle',5]
a = random.sample(list_t,2)#从指定序列中获取指定长度的个数,即从list_t中随机拿出2个元素
a = random.suffle(list_t)#将指定序列中的元素随机打乱 print(a) '''练习:4位包含字母数字验证码的生产 思路: 1、需要4位验证码且是随机的即项目要求通过运算最后返回一个4位的字符串 2、4位验证码的每一位都需要是随机的,且应在包含有所有数字及字符的序列中选择 3、故需先要生成带有所有数字及字母的序列,然后从中选4次,拼接成一个4位字符串 4、随机选择参数需要用到模块random模块 ''' import random def verify_fun(): # while True: verify = ''#创建一个空的字符串,当拼接成4位的字符串返回,即实现需求 for i in range(1,5): #循环4次,此处如用random.randint会报错不是可迭代的对象 ver_num = random.randint(0,9)#随机生成0,9中任意数字 # ver_num = chr(random.randint(48,57))##ASCII码表中48~57分别表示0~9 ver_upper = chr(random.randint(65,90))#ASCII码表中65~90分别表示a~z,通过chr(a)可将数字转换成对应字母 ver_lower = chr(random.randint(97,122))#ASCII码表中97~122分别表示A~Z choic_table = [ver_num,ver_lower,ver_upper]#生成一个带有数字和字母的列表 single_str = str(random.choice(choic_table)) verify += single_str #连续递加拼接,生成目标字符串 return verify#verify是全局变量,如果在前面将verify放到for里面就是局部变量,如果在for外调用,只会得到一个数,因为每次循环,开始都会将verify上次的值重新赋值为空。
#如果return放到for里面就会执行一次就结束,因为函数中一遇到return函数就会结束,不再运行
print(verify_fun())
注:
1、字符串拼接只能是字符串与字符串,single_str拼接时它必须是字符串类型才行: TypeError: must be str, not int
2、局部变量的含义,当变量verify在for里时,在for外调用verfiy变量会报如下错误:Local variable 'verify' might be referenced before assignment less... (Ctrl+F1)
This inspection warns about local variables referenced before assignment.
人生苦短,我用python!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具