zoukankan      html  css  js  c++  java
  • Python基础-内置函数和匿名函数

    内置函数和匿名函数

    https://www.processon.com/view/link/5adc6062e4b04721d63171eb?pw=3218   密码:3218

    1. 内置函数

    1.1 作用域相关

    print(locals())   # 返回本地作用域中的所有名字  
    
    print(globals())  #返回全局作用域中的所有名字
    
    global 申明变量 ***
    nonlocal 申明变量 ***

    1.2 迭代器生成器相关

    next (迭代器)
    # 迭代器__next__()   <===> next(迭代器)
    方法 __next__  实际完成者
    内置函数  next()
    
    iter(可迭代的)
    # 迭代器 = 可迭代的.__iter__
    # 迭代器 = iter(可迭代的)
    
    range
    range(10)
    range(1,11)
    range(1,11,2)
    range 是可迭代的 但不是迭代器  没有 __next__ 方法
    iter(range)  是一个迭代器了。。。

    1.3 其他

    1.3.1 dir callable help

    dir 
    查看一个变量所拥有的所有方法  只能查变量,不能查关键字 def gloabl之类的
    print(dir([]))
    print(dir(1))
    
    callable
    #调用相关 返回true或者false
    判断一个名字是否能够被调用
    print(callable(print))  # True
    
    a = 1 
    print(callable(a))  # False
    
    def func():pass
    print(callable(func))   #True
    
    
    
    help 帮助相关
    help(str)  #查看str的所有方法及用法 比dir 更详细的方法
    dir(str) #只能查看拥有的方法名字 不能看到方法的用法

    1.3.2 模块相关

    import
    #  某个方法属于某个数据类型的变量,就用.调用
    #  如果某个方法不依赖于任何数据类型,就直接调用 --- 内置函数和自定义函数
    l = [1,2,3,4] # l像是句柄一样啊。。。
    l.append()
    
    
    import time
    # time = __time__('time')
    print(time.time())

    文件相关

    open()
    
    f = open('filename')
    print(f.writable())  # 判断文件是否可写
    print(f.readable())  # 判断文件是否可读

    1.3.3 内存相关

    id  #查看一个变量的内存地址
    
    hash 
    #  print(hash(对象)) 
    #   对象不能变的 都有值输出,代表可hash。 在一次执行中,一个值的hash值不会变。
    #    对象可变的,会报错 unhashable 
    
    对于相同可hash数据的hash值,在一次程序执行过程中总是不变的
    理解记忆字典的寻址方式

    1.3.4 输入输出

    input    # 用户输入
    
    ret = input('提示: ') 
    print(ret)
    
    print   # 输出方法
    print  #自带一个换行符 
    
    print('我们的祖国是花园
    ',end = '')  #默认参数 end 是空格
    
    print(1,2,3,4,5)
    print(1,2,3,4,5,sep = '|')    # sep  指定输出的分隔符
    
    print输出其实是写到一个文件 这个文件展示到屏幕上。我们可以改变这个默认文件。
    f = open('file','w')
    print('123',file = 'file')
    f.closed
    
    pirnt的其他参数
    def print(self, *args, sep=' ', end='
    ', file=None): # known special case of print
    '''
    file: 默认是输出到屏幕,如设置为文件句柄,则输出到文件
    sep: 打印多个值之间的分隔符,默认为空格
    end: 每一次打印的结尾,默认为换行符
    
    flush: 立即把内容输出到流文件,不做缓存
    '''

    1.3.5 字符串类型代码的执行

    evel
    exec
    
    exec('print(123)')   # 123
    eval('print(123)')    # 123 
    
    print(eval('1+2+3+4'))  # 10
    print(exec('1+2+3+4'))   # none
    
    # exec 和eval 都可以执行字符串类型的代码
    #  eval   有返回值  - 有结果的简单计算
    #  exec  没有返回值- 简单的流程控制
    evel 只能用在你明确知道你要执行的代码是什么
    
    code = ''' for i in range(10):
        print(i * '*')    
    '''
    eval(code)
    
    compile  # 不常用
    # 将字符串类型的代码进行编译,使其可以通过eval和exec执行。
    # 将代码转换为字节码

    1.4 基础数据类型相关

    1.4.1 和数字相关

    数据类型:

    int float complex  

    进制转换

    bin 
    十转二 (0b)
    oct
    十转八 (0o)
    hex
    十转十六(0x)

    数学运算

    abs   #求绝对值
    
    divmod  #接收两个参数  返回两个结果、取商取余
    print(divmod(7,2))      #  3,1
    print(divmod(2,7))      #  1,4
    
    round #小数精确
    round(3,1415926,2)  # 3.14
    
    pow  #幂运算
    print(row(2,3))    # 8  幂运算
    print(row(2,3,3))  #  幂运算之后取余
    
    sum  # 求和 接收一个可迭代的,数字
    
    min # 计算最小值
    print(min([1,2,3,4]))  # 1
    print(min(1,2,3,-4))  # -4
    print(min(1,2,3,-4,key = abs))  # 1  找绝对值的最小值
    
    max # 计算最大值,与最小值用法相同

    1.5 数据结构相关

    1.5.1 序列--列表和元组相关的

    list
    tuple

    1.5.2 序列--字符串相关的

    str
    format
    bytes
    
    bytearry
    ret = bytearray('alex',encoding='utf-8')
    print(id(ret))
    print(ret[0])
    ret[0] = 65
    print(ret)
    print(id(ret))
    
    memoryview
    ret = memoryview(bytes('你好',encoding='utf-8'))
    print(len(ret))
    print(bytes(ret[:3]).decode('utf-8'))
    print(bytes(ret[3:]).decode('utf-8'))
    
    ord
    chr
    ascii
    repr

    1.5.3 序列

    reversed
    slice

    数据集合——字典和集合:dict,set,frozenset

    数据集合:len,sorted,enumerate,all,any,zip,filter,map

    filter和map:http://www.cnblogs.com/Eva-J/articles/7266192.html

    sorted方法:http://www.cnblogs.com/Eva-J/articles/7265992.html

    2. 匿名函数

    匿名函数:为了解决那些功能很简单的需求而设计的一句话函数

    def calc(n):
        return n**n
    print(calc(10))
     
    #换成匿名函数
    calc = lambda n:n**n
    print(calc(10))

    图解:

    匿名函数格式说明

    函数名 = lambda 参数 :返回值
    
    #参数可以有多个,用逗号隔开
    #匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
    #返回值和正常的函数一样可以是任意数据类型

    我们可以看出,匿名函数并不是真的不能有名字。

    匿名函数的调用和正常的调用也没有什么分别。 就是 函数名(参数) 就可以了

  • 相关阅读:
    java.lang.NoSuchMethodError:antlr.collections.AST.getLine() I
    T7 java Web day01 标签HTML
    T6 s1 day19
    T5 s5 Day18
    T5 s4 Day 17
    T5 s3 day16
    T5 s2 Day 15
    T5 s1 day14
    T4 S03 day 12
    T4 S01 day1
  • 原文地址:https://www.cnblogs.com/wangph/p/8955953.html
Copyright © 2011-2022 走看看