生成随机数模块: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.