Python作业碎碎念
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)
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='\t')
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))
dict初始化
dict[i] = dict.get(i,0) + 1
# C++ == mp[i] = mp[i] + 1
dict遍历多键值字典
for key, value in d.items():
print (key, ' : ', value)