• 自学Python3.3-函数分类(内置函数补充)


    自学Python之路-Python基础+模块+面向对象
    自学Python之路-Python网络编程
    自学Python之路-Python并发编程+数据库+前端
    自学Python之路-django

    自学Python3.3-函数分类(内置函数补充)

    内置函数,自定义函数,匿名函数

    内置函数(python3.x)

    一、作用域相关

    1.1 globals()  返回全局作用域内所有

    1.2 locals() 返回当前作用域内所有

    • 函数功能返回当前作用域内的局部变量和其值组成的字典,与globals函数类似(返回全局变量)
    • 可用于函数内
    • 返回的字典集合不能修改

    二、迭代器/生成器相关 

    2.1 next()     next(迭代器) #相等于 迭代器.__next__()

    • 函数必须接收一个可迭代对象参数,每次调用的时候,返回可迭代对象的下一个元素。如果所有元素均已经返回过,则抛出StopIteration异常。
    • 函数可以接收一个可选的default参数,传入default参数后,如果可迭代对象还有元素没有返回,则依次返回其元素值,如果所有元素已经返回,则返回default指定的默认值而不抛出StopIteration 异常。

    2.2  iter()    迭代器 = iter(可迭代的) #相等于 迭代器 = 可迭代的.__iter__()

    • 函数功能返回一个迭代器对象。
    • 当第二个参数不提供时,第一个参数必须是一个支持可迭代协议(即实现了__iter__()方法)的集合(字典、集合、不可变集合),或者支持序列协议(即实现了__getitem__()方法,方法接收一个从0开始的整数参数)的序列(元组、列表、字符串),否则将报错。
    • 当第二个参数sentinel提供时,第一个参数必须是一个可被调用对象。创建的迭代对象,在调用__next__方法的时候会调用这个可被调用对象,当返回值和sentinel值相等时,将抛出StopIteration参数必须是一个可被异常, 终止迭代。

     

    2.3  range()    迭代器 = iter(可迭代的) #相等于 迭代器 = 可迭代的.__iter__()

    • range函数用于生成一个range对象,range类型是一个表示整数范围的类型。 
    • 可以直接传入一个结束整数来初始化一个range类型,默认起始值为0(包含0).结束整数可以大于0,也可以小于等于0,但是小于等于0的时候生成的range对象实际是不包含任何元素的。
    • 可以传入一个起始整数和一个结束整数来初始化一个range类型,生成的range类型包含起始整数(包含),和结束整数(不包含)之间的所有整数。
    • 传入了起始整数和结束整数,还可以同时传入一个步进值来初始化一个range类型,生成的range类型包含起始整数(包含),和结束整数(不包含)之间的以步进值筛选后的整数。
    • 初始化range类型时起始整数和结束整数,遵循的是左臂右开原则,即包含起始整数,但不包含结束整数。
    •  range接收的参数都必须是整数,不能是浮点数等其它数据类型。
    • range实际上是一个不可变的序列类型,可以对它进行取元素、切片等序列操作,但是不能对其中元素修改值。
    range(10)
    range(1,11)
    range(1,11,2)  

     range是一个可迭代的,但不是迭代器。

     

    三、和反射相关 

    四、和面向对象相关

    五、和基础数据类型相关(其中包含两类:和数字相关、和数据结构相关)

    数字——数据类型相关:bool,int,float,complex

    数字——进制转换相关:bin,oct,hex

    数字——数学运算:abs,divmod,min,max,sum,round,pow

    序列——列表和元组相关的:list和tuple

    序列——相关内置函数:reversed,slice

    序列——字符串相关的:str,format,bytes,bytearry,memoryview,ord,chr,ascii,repr

    数据集合——字典:dict

    数据集合——集合:set,frozenset

    相关内置函数:len,sorted,enumerate,all,any,zip,filter,map

    六、 其他的

    6.1  字符串类型代码的执行

    6.1.1  eval() 将字符串类型的代码执行并返回结果

    print(eval('1+2+3+4'))

    6.1.2  exec()将自字符串类型的代码执行

    print(exec("1+2+3+4"))
    exec("print('hello,world')")

    6.1.3  compile  将字符串类型的代码编译。代码对象能够通过exec语句来执行或者eval()进行求值。

    参数说明: 

    • 参数source:字符串或者AST(Abstract Syntax Trees)对象。即需要动态执行的代码段。  
    • 参数 filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。当传入了source参数时,filename参数传入空字符即可。  
    • 参数model:指定编译代码的种类,可以指定为 ‘exec’,’eval’,’single’。当source中包含流程语句时,model应指定为‘exec’;当source中只包含一个简单的求值表达式,model应指定为‘eval’;当source中包含了交互式命令语句,model应指定为'single'。

    流程语句使用exec()

    简单求值表达式用eval()

    6.2 输入输出相关

    6.2.1 input() 输入

    6.2.2 print() 输出

    def print(self, *args, sep=' ', end='
    ', file=None): # known special case of print
        """
        print(value, ..., sep=' ', end='
    ', file=sys.stdout, flush=False)
        file:  默认是输出到屏幕,如果设置为文件句柄,输出到文件
        sep:   打印多个值之间的分隔符,默认为空格
        end:   每一次打印的结尾,默认为换行符
        flush: 立即把内容输出到流文件,不作缓存
        """
    
    f = open('tmp_file','w')
    print(123,456,sep=',',file = f,flush=True)

    举例子:打印进度条

    import time
    for i in range(0,101,2):  
         time.sleep(0.1)
         char_num = i//2      # 打印多少个'*'
         per_str = '
    %s%% : %s
    ' % (i, '*' * char_num) if i == 100 else '
    %s%% : %s'%(i,'*'*char_num)
         print(per_str,end='', flush=True)  # 
     可以把光标移动到行首但不换行  

    6.3 内存相关

    6.3.1 id(o) o是参数,返回一个变量的内存地址

    6.3.2 hash(o) o是参数,返回一个可hash变量的哈希值,不可hash的变量被hash之后会报错。hash函数会根据一个内部的算法对当前可hash变量进行处理,返回一个int数字。

                                            每一次执行程序,内容相同的变量hash值在这一次执行过程中不会发生改变。

    6.4 文件操作相关

    open()  打开一个文件,返回一个文件操作符(文件句柄)

    操作文件的模式有r,w,a,r+,w+,a+ 共6种,每一种方式都可以用二进制的形式操作(rb,wb,ab,rb+,wb+,ab+),可以用encoding指定编码.

    6.5 模块操作相关

     __import__导入一个模块

    import time  # 导入时间模块

    6.6 帮助

    在控制台执行help()进入帮助模式。可以随意输入变量或者变量的类型。输入q退出

    或者直接执行help(o),o是参数,查看和变量o有关的操作。

    6.7 和调用相关

    callable(o),o是参数,看这个变量是不是可调用。如果o是一个函数名,就会返回True。

    • 方法用来检测对象是否可被调用,可被调用指的是对象能否使用()括号的方法调用;
    • 可调用对象,在实际调用也可能调用失败;但是不可调用对象,调用肯定不成功;
    • 类对象都是可被调用对象,类的实例对象是否可调用对象,取决于类是否定义了__call__方法。
    def func():pass
    print(callable(func))  #参数是函数名,可调用,返回True
    print(callable(123))   #参数是数字,不可调用,返回False
    

    6.8 查看参数所属类型的所有内置方法

    dir()默认查看全局空间内的属性,也接受一个参数,查看这个参数内的方法或变量。

    print(dir(list))  #查看列表的内置方法
    print(dir(int))  #查看整数的内置方法

    .....

  • 相关阅读:
    什么是整型数据类型
    什么是布尔型(boolean)数据类型?
    PHP的八种数据类型
    php中session时间设置详解
    php中session数据库存储实例详解
    php中session临时文件和缓存说明
    php自定义Session的信息处理说明
    如何通过Session对用户操作权限进行判断的实例详解
    php中的Session是什么
    php中如何传递Session ID
  • 原文地址:https://www.cnblogs.com/yaoyaojcy/p/10596172.html
Copyright © 2020-2023  润新知