• 内置函数day14课堂小结


    课前回顾

    迭代器

    迭代器对象一定是可迭代对象,可迭代对象不一定是迭代器对象

    可迭代对象

    含有__iter__方法的数据类型

    除了数字类型都是可迭代对象

    迭代器对象

    含有__iter__,__next__方法的数据类型

    文件才是迭代器对象

    可迭代对象加上__iter__会变成迭代器对象

    迭代器对象加上__iter__方法依然是迭代器对象

    for循环原理

    lt = [1,2]
    
    lt_iter = lt._iter_()
    while True:
        try:
            print(lt_iter._next_())
    	except StopIteration:
            break
    

    三元表达式

    条件成立if条件 else条件不成立

    列表推导式

    [i fo i in range(10)]

    字典生成式

    {i:i for i in range(10)}

    zip

    把多个可迭代对象一次性读取每一个可迭代对象的中的元素,拼成元素

    生成器表达式

    (i for i in range(10)) # 节省内存 空间-》生成器-》老母鸡

    [i for i in range(10)]-》列表--》一筐鸡蛋

    生成器

    本质是迭代器,是自定迭代器,含有yield关键字的函数

    def ge():
        yield
    

    yield

    1. 暂停函数
    2. 通过next取出一个yield的值
    def range(start,stop,step):
        while start < stop :
            yield start
            start += step
            
            
    for i in range(1,10,2):
        print(i)
    

    递归

    函数调用本身,有退出条件

    count  = 0
    def a():
        global count
        print(count)
        
        if count == 100:
            return
        count += 1
        a()
        
    a()
    

    匿名函数

    有名函数

    我们之前定的函数都是有名函数,它是基于函数名使用。

    匿名函数

    匿名函数,他没有绑定名字,使用一次即被收回,加括号即可运行。

    匿名函数的语法:

    lambda 参数 :返回值

    f = lambda x, y:x * y
    res = f(1,2)
    print(res)
    

    内置函数

    python解释器内置方法:

    掌握:
    1. bytes
    res = bytes('中国',encoding='utf8')
    print(res)
    
    b'xe4xbdxa0xe5xa5xbd'
    
    res = '你好'.encode('utf8')
    print(res)
    
    b'xe4xbdxa0xe5xa5xbd'
    
    1. chr()/ord()

    chr()参考ASCII码表将数字转成对应字符;ord()将字符转换成对应的数字。

    print(chr(65))
    
    A
    
    print(ord('A'))
    
    65
    
    1. divmod() 分栏
    print(divmod(10,3)) #取整/取余
    
    (3,1)
    
    1. enumerate() 带有索引的迭代
    l = ['a','b','c']
    for i in enumerate(l):
        print(i)
    
    (0,'a')
    (1,'b')
    (2,'c')
    
    1. eval() 把字符串翻译成数据类型,把字符串去掉,留下来的。
    lis = '[1,2,3]'
    lis_eval = eval(lis)
    print(lis_eval)
    
    [1,2,3]
    
    1. hash() 是否可哈希 ,可变类型不可 哈希
    print(hash(1))
    
    1
    
    了解:
    1. abs() 求绝对值。
    print(abs(-13)) # 求绝对值
    
    13
    
    1. all() 可迭代对象内元素全为真,则返回真。
    print(all([1,2,3,4]))
    print(all([]))
    
    Ture
    False
    
    1. any() 可迭代对象中有一元素为真,则为真。
    print(any([1,2,3,0]))
    print(any([]))
    
    True
    False
    
    1. bin()/oct()/hex() 二进制、八进制、十六进制转换。
    print(bin(17))
    print(oct(17))
    print(hex(17))
    
    0b10001
    0o21
    0x11
    
    1. dir() 列出模块的所有方法
    import time 
    
    print(dir(time))
    
    1. frozenset() 不可变的集合 (不可变化的集合,类似于元组)
    s = frozenset({1,2,3})
    
    frozenset({1,2,3})
    
    1. globals()/loacals() 查看全局变量/查看当前位置变量
    def func():
        s = 's1'
        print(globals())
        print('locals():',locals())
    
       
    func()
    
    locals():{'s':'s1'}
    
    1. pow()
    print(pow(3,2,3)) # (3**2)%3
    
    0
    
    1. round() 四舍五入
    print(round(10.33))
    
    10
    
    1. slice
    lis = ['a','b','c']
    s = slice(1,4,1)
    print(lis[s])
    
    ['b', 'c']
    
    1. sum()
    print(sum(range(100)))
    
    4950
    
    1. __import__() 通过字符串导入模块
    time = __import__('time')
    print(time.time())
    

    异常处理

    异常处理:报了错,进行处理

    异常捕捉只能捕捉逻辑错误,语法错误不行

    print(1)
    num = input('请输入数字:')
    
    try:
        1/int(num) # 报错之后,不运行下面的代码
    except ZeroDivisionError:
        print('傻逼,不能输入0')
        
    print(2)
        
    
    except Exception as e: # 万能异常,只要有错误,就捕捉
        print(e) # 错误的描述信息
    

    面向过程编程

    面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。

    就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

  • 相关阅读:
    计算两个字符串的最大公共字串的长度,字符不区分大小写
    任何一个整数m的立方都可以写成m个连续奇数之和。
    求一个byte数字对应的二进制数字中1的最大连续数
    Elasticsearch的过滤查询
    如何在Elasticsearch中安装中文分词器(IK+pinyin)
    使用Linux的alternatives命令替换选择软件的版本
    PHP如何与搜索引擎Elasticsearch交互?
    如何安装搜索引擎Elasticsearch?
    如何修改MAC自带的PHP的版本?
    程序员技能图谱
  • 原文地址:https://www.cnblogs.com/shin09/p/11586654.html
Copyright © 2020-2023  润新知