Python学习_random模块使用

#!/usr/bin/python

#-*- encoding:UTF-8 -*-

#date:20180516

random模块的方法:随机生成想要的数字、字母等

'''随机函数,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.

猜你喜欢

转载自www.cnblogs.com/sunxiuwen/p/9047082.html