• python的一点点学习笔记


    自学语言,比较艰难,希望能坚持下去。


    字符串处理函数

    len(x)	返回x的长度
    str(x)	与eval函数相反 在两侧加引号
    chr(u) 	通过Unicode编码u返回对应的字符
    ord(x)	返回字符x对应的Unicode编码
    

    字符串处理方法

    str.lower()/str.upper()  将全部字符小写/大写
    str.split(sep=None)  返回一个列表,由str根据sep被分割的部分组成,默认为所有的空字符,包括空格、换行(
    )、制表符(	)等
    str.count(sub)  返回子串sub在str中出现次数
    str.replace(old,new)  将str中所有old字串替换为new
    str.center(width[,fillchar]) 字符串str根据宽度width居中,fillchar作为填充字符
    str.join(iter) 在iter变量除最后元素外每个元素后加一个str
    ",".join("12345") 结果为 "1,2,3,4,5" 主要用于字符串分割
    

    字符串格式化

    image-20210126172520810

    需要注意的是,如果要输出的位数超过了规定的宽度,则以实际输出位数为准

    需要重点理解的是,format的槽机制,槽中可以嵌套槽,用来表示宽度、填充等含义。比如这道题

    image-20210126172852447

    n = eval(input())
    for i in range(1, n+1, 2):
        print("{0:^{1}}".format('*'*i, n))
    

    这里就是槽中又嵌套了一个槽,很灵活


    循环的高级用法

    for ...:
        ...
        break
    else:
    	...
    

    else可以跟在for/while后面用,表示如果没有在循环中执行break,那么执行else中的语句

    随机数函数

    random() 生成[0,1)随机小数
    seed(x) 以x为种子
    randint(a,b) 生成[a,b]随机整数
    randrange(m,n[,k]) 生成[m,n)以k为步长的随机整数
    uniform(a,b) 生成[a,b]随机小数(16位)
    choice(seq) 从序列seq中随机选择一个元素
    shuffle(seq) 将序列seq中元素随机排列
    

    以字符串形式调用函数的方法

    print(eval("calc({})".format(input())))
    

    很巧妙,{}完全被输入的内容替代,再用eval去掉引号,相当于实现了print(calc(input()))print(calc(eval(input())))

    但是为什么不能像上述这样实现呢

    比如输入是1,2,3,4,那么input()返回的实际上是“1,2,3,4”这一整个字符串,不能被正常传参传进calc里,又或者eval之后这个输入的1,2,3,4自动变成了元组(1,2,3,4),也是无法传参的

    因此这个以字符串形式调用函数的方法十分巧妙,即先用引号括住,这样就保证了输入的内容可以无损粘贴到calc()的括号中去

    当你走进这欢乐场
  • 相关阅读:
    【TYVJ1728】【洛谷P3369】—普通平衡树(Splay写法)
    【BZOJ2388】—旅行规划(分块+凸包)
    【BZOJ3674】—可持久化并查集加强版(可持久化并查集)
    【模板】树链剖分+换根
    【CQOI2007】【BZOJ1257】【洛谷P2261】余数求和(整除分块)
    Old Driver Tree(ODT 老驱动树)
    【CodeForces-896C】— Willem, Chtholly and Seniorious(ODT老驱动树)
    【BZOJ2238】—MST(树链剖分+最小生成树)
    13.PHP_ThinkPHP
    Win64 驱动内核编程-33.枚举与删除对象回调
  • 原文地址:https://www.cnblogs.com/YoungNeal/p/14331799.html
Copyright © 2020-2023  润新知