zoukankan      html  css  js  c++  java
  • 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))
    

      

  • 相关阅读:
    剑指OFFER之复杂链表的复制(九度OJ1524)
    剑指OFFER之二叉树中和为某一值的路径(九度OJ1368)
    剑指OFFER之从二叉搜索树的后序遍历序列(九度OJ1367)
    剑指OFFER之从上往下打印二叉树(九度OJ1523)
    剑指OFFER之栈的压入、弹出序列(九度OJ1366)
    剑指OFFER之包含min函数的栈(九度OJ1522)
    剑指OFFER之顺时针打印矩阵(九度OJ1391)
    剑指OFFER之树的子结构(九度OJ1520)
    剑指OFFER之二叉树的镜像(九度OJ1521)
    VM安装CentOs7虚拟机后无法上网之解决方法
  • 原文地址:https://www.cnblogs.com/thx2199/p/14844724.html
Copyright © 2011-2022 走看看