random模块下的方法详解:
1.random.random()
- 随机生成一个[0,1)之间的浮点数。
2.random.randint(a,b)
- 随机生成[a,b]范围内一个整数。
3.random.choice(seq)
从非空序列中随机选取一个数据并带回,该序列可以是list、tuple、str、set。
如果序列为空,则弹出IndexError错误。
4.random.choices(population,weights=None,*,cum_weights=None,k=1)
Python3.6版本新增。
- population:集群。
- weights:相对权重。
- cum_weights:累加权重。
- k:选取次数。
5.random.shuffle(lst)
随机打乱序列lst的顺序并重新排序,注意它无返回值,另外lst只能是一个可变序列,且只支持有下标的序列,因此它也不适用于set,你最好只把它用在列表上。
生成一个随机整数列表,按照长度降序
import random ls=[random.randint(0,100) for i in range(20)] print(ls) ls=sorted(ls,key=lambda x:len(str(x)),reverse=True) print(ls)
ascii_letters,ascii_lowercase,ascii_uppercase
from string import ascii_letters,ascii_lowercase,ascii_uppercase #ascii_letters是所有字母组成的字符串,digits是所有数字组成的字符 def kaisa(text,k): #大小写字母转化为k~-1 + 0~k lower=ascii_lowercase[k:]+ascii_lowercase[:k] upper=ascii_uppercase[k:]+ascii_uppercase[:k] #将ascii_letters转化为 table=''.maketrans(ascii_letters,lower+upper) #将text按照生成maketrans替换 return text.translate(table) s='abc duang duang duang every chu lang lang lang' print(kaisa(s,3))
reduce对序列执行函数
from functools import reduce fa=[1,2,3,4,5,6] result = reduce(lambda a,b:a*2+b,fa) #本样例计算为:1*2^5+2*2^4+3*2^3+4*2^2+5*2+6 print(result)
isinstance判断对象是否为已知类型
from math import pi def area(r): if isinstance(r,(int,float)) and r>0: return pi*r*r else: return ('error') print(area(3))
split()方法 第一个参数为指定分隔符Node为空(包含任何空白符号,且自动删除),如果指定分割符则不删除空字符串,第二个参数为指定最大分割次数
s='wo,shi,tutu,xiao,taoqi' print(s.split(','))
rsplit和split相同,区别是rsplit从字符串结尾开始计数
maketrans()方法用来生成字符映射表 translate()方法按映射表对应关系转换替换其中字符
table=''.maketrans('abcdef123','uvwxyz@#$') s='abcdef123 a jun zui bang ye ye ye' p=s.translate(table)方法不改变原字符串 print(p)
replace()方法替换元组内存在内容
words=('测试','非法','暴力','话') text='这句话里含有非法内容' for word in words: if word in text: text=text.replace(word,'***') print(text)
sep用来设置print分隔符
for i in range(1,10): for j in range(1,i+1): print(j,"*",i,"=",i*j,sep='',end=' ') print()
enumerate()函数
a=['a','b','c','d'] for i,v in enumerate(a): #i获取下标,v获取值 print("列表的第",i+1,'个元素是:',v)
随机二选一
import random tmp=1 tmp+=random.choice((1,-1))