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)
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))

  

原文地址:https://www.cnblogs.com/thx2199/p/14844724.html