• Python之路--Python基础4--内置函数


    内置函数介绍:

     内置参数官方详解 https://docs.python.org/3/library/functions.html?highlight=built#ascii 

     下面是本人对常用内置函数的理解:

    print(abs(-1))  #绝对值  1
    
    print(all([1, 2, 3, 4, 5]))             #True
    print(all(['', 1, 2]))                  #False
    #bool为False的情况0、 空、None
    
    print(bin(12345), type(bin(12345)))     #0b11000000111001 <class 'str'>
    
    print(chr(97))                          #按照ascll表将数字转换成字符  a
    print(ord("a"))                         #按照ascll表将字符转换成数字  97
    
    print(divmod(10, 3))                    #返回(商,余数) (3, 1)
    
    print(id(1))                            #查看内存地址
    
    print(isinstance("123", int))           #False
    print(type("123") is str)               #判断数据类型  True
    
    
    print(len("123"))                       #3
    print("123".__len__())                  #计算长度  3
    
    print(pow(2, 3))                        #2的3次方  8
    print(pow(2, 3, 3))                     #前两个参数是求次方,后一个参数是取余运算   2
    
    print(type(repr(1234)))                 #将1234转成字符串   <class 'str'>
    print(type(str(1234)))                  #<class 'str'>
    
    
    l = [1, 2, 3]
    for i in reversed(l):                   #倒着打印
        print(i)
    
    
    print(round(3.5))                       # 四舍五入   4
    print(round(3.3))                       # 3
    
    
    print(l[0:3:2])                         #切片[1, 3]
    a = slice(0, 3, 2)
    print(l[a])                             #切片[1, 3]
    
    
    print(sum([1, 2, 3, 4, 5]))             #求和运算 15
    print(sum([1, 2, 3, 4, 5]), 100)        #可以设置初始值100, 结果为115
    print(sum([], 100))                     #100
    
    
    print(eval("1+2*3/4"))    #将字符串形式的表达式 解析并执行: 2.5
    
    a = "print('hello exec')"
    exec(a)                   #将字符串形式的代码   解析并执行:hello exec
    
    #compile()#几乎用不到      #把一个代码文件加载进来,按exec和eval的方式解析并执行
    
    def Sayhi():
        name = "YL"
        print(locals())     #打印局部变量  {'name': 'YL'}
        print(globals())    #打印全局变量
    Sayhi()
    
    
    
    #-------------------------------------------------------------------------------------
    #map(function, sequence1, sequence2...)
    a = map(lambda x: x*x, range(10))
    print(a)        #<map object at 0x000001CBF8573A20>
    print(list(a))  #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
    #可以处理多个sequence,实现通过function方法对sequence1,sequence1,..进行处理,这就要求function也支持相应数量的参数输入:
    a = map(lambda x, y, z: x+y+z, range(10), range(10), range(10))
    print(list(a))  #[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
    #------------------------------------------------------------------------------------------
    
    
    #-------------------------------------------------------------------------------------
    #reduce(function, sequence, starting_value):
    #仅能处理一个sequence,starting_value为初始化值,执行顺序为:先将每个sequence内部第一个值和starting_value进行function处理,
    #处理的结果再与sequence第二个值进行function处理,直到结束。
    #->reduce的function函数必须要输入两个变量才能进行运算
    from functools import reduce
    print(reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 1))  #21
    #结果为21   执行顺序为---->((((( (1+2) +3)+4)+5)+6))
    print(reduce(lambda x, y: x + y, [2, 3, 4, 5, 6]))     #20
    #-------------------------------------------------------------------------------------
    
    
    #------------------------------------------------------------------------------------
    # filter(function, sequence):对sequence中的item依次执行function(item),只能有1个sequence
    a = range(10)
    b = filter(lambda x: x > 5, a)
    print(b)       #<filter object at 0x00000204ADDC0748>
    print(list(b)) #[6, 7, 8, 9]
    
    print(list(filter(lambda x: x+5, a)))  #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    #filter可以看作是过滤函数,貌似并不能修改sequence里面的值
    
    l = [1, 2, 0, 4, 0, 7]
    print(list(filter(None, l)))  #当function是None时,返回的是Ture的item:[1, 2, 4, 7]
    #-------------------------------------------------------------------------------------
    
    
    a = list(range(10))
    print(a)                #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    b = list(range(10, 16))
    print(b)                #[10, 11, 12, 13, 14, 15]
    print(list(zip(a, b)))  #[(0, 10), (1, 11), (2, 12), (3, 13), (4, 14), (5, 15)]
    
    
    
    #print
    msg = "又回到最初的起点"
    f = open("tofile", "w")
    print(msg, "记忆中你青涩的脸", sep="|", end="", file=f)  #在文件tofile中写入:又回到最初的起点|记忆中你青涩的脸
    
    import time      #老牛逼了
    for i in range(10):
        time.sleep(0.5)
        #print(".")
        print(".", end="", flush=True)
    
    # import sys
    # print("---", vars(sys))
    # print("...", dir(sys))
    
    # import time
    # for n in (100000, 200000, 300000, 400000):
    #     data = b'x'*n
    #     start = time.time()
    #     b = data
    #     while b:
    #         b = b[1:]
    #     print('bytes', n, time.time()-start)
    #
    # for n in (100000, 200000, 300000, 400000):
    #     data = b'x'*n
    #     start = time.time()
    #     b = memoryview(data)
    #     while b:
    #         b = b[1:]
    #     print('memoryview', n, time.time()-start)

    小结:map、filter、reduce三个函数的区别

    map函数,可以有多个sequence参数,并且可以修改参数sequence中的item的值

    filter函数,只能有一个sequence参数,并且不能修改参数sequence中的item的值,相当于一个过滤函数

    reduce函数,只能有一个sequence参数,并且不能修改参数sequence中的item的值,相当于一个累加函数,它的function参数必须有两个参数传入

    
    
    
    
    
    
  • 相关阅读:
    记录一下自己写PHP程序时走过的一些坑
    自己写了一个TCP攻击测压平台
    Centos 7x 安装 Telegram MTproxy代理【完美可用】
    "@阅后即焚"上线了!
    小白的机器学习坑3:粗大的安装CUDA
    小白的机器学习坑2:nvidia驱动的安装
    小白的机器学习坑1:ubuntu 18.04的安装
    小白的linux学习笔记9:安装nodejs和gitbook
    小白的linux笔记11:放弃gitbook,转战Sphinx
    小白的linux学习笔记10:安装nginx和第一个网页
  • 原文地址:https://www.cnblogs.com/yl-code/p/8231535.html
Copyright © 2020-2023  润新知