zoukankan      html  css  js  c++  java
  • Python面试总结复习(四)

    1.数据库优化,数据库索引,索引的详细知识点

    2.python中数据类型,哪些可变,哪些不可变

    可变:列表,字典,集合
    不可变:数字,字符串,元组

    3.列表和元组排序

    列表

    正向排序

    sort()
    list1=[1,3,7,4,6]
    list1.sort()          #[1,3,4,6,7]
    sorted()
    sorted([1,6,3,4,5])    #[1,3,4,5,6]

    sort与sorted区别:  sort是永久的,而sorted是临时的

    逆向排序

    list1=[1,3,7,4,6]
    list1.sort(reverse=True)          #[7,6,4,3,1]
    sorted([1,6,3,4,5],reverse=True)    #[6,5,4,3,1]

    反转排序

    list1=[1,3,7,4,6]
    list1.reverse()      #[6,4,7,3,1]  

    元组

    元组排序可通过list函数将元组转换成列表,采用列表排序方法即可。

    字典

    通过key排序

    4.手写一个装饰器,并打印函数内参数

    装饰器是从闭包函数过来的,闭包函数就是定义在内部的函数引用外部函数的变量

    def outter(func):
        def inner(*args,**kwargs):
            res=func(*args,**kwargs)   #res=index(*args,**kwargs)
            print(args,kwargs)
            print(res)
        return inner
    
    @outter         #index=outter(index)
    def index(a,b):
        return '原函数'
    
    index(2,b=2)    #inner(2,b=2)
    
    #结果
    (2,) {'b': 2}
    原函数

    5.序列化,为什么使用序列化,哪些数据可以序列化

    使用json模块实现序列化
    因为基于网络传输的数据都是二进制的,但是写入文件的数据必须是字符串,所以需要将数据格式进行转换。
    json.dumps:将其他类型的数据转换成json格式的字符串  (序列化)
    json.loads:将json格式的字符串转换成其他格式数据类型   (反序列化)
    
    支持的数据类型:str,list,tuple,int,dict

    6.迭代器与生成器的区别

    迭代器:迭代器即迭代的工具,迭代是一个重复的过程,每次重复就是一次迭代,并且每次迭代的结果就是下一次迭代的初始值。
    对于没有索引的数据类型,必须提供一种不依赖索引的迭代方式,所以产生了迭代器
    迭代器定义:可迭代对象执行__iter__方法,得到结果就是迭代器,迭代器对象有__iter__和__next__方法(可迭代对象有str,list,tuple,set等),
    __iter__返回迭代器本身__next__返回容器的下一个值,如果容器中没有元素了,则抛出异常。
    生成器就是用户自定义的迭代器,可以理解为一个更加优雅的迭代器(他不需要实现__iter__和__next__方法),也实现了迭代器的协议,它也可以通过next()取出元素。
    生成器主要分为两种类型:
    1.函数内部加了关键字yield就变成生成器
    代码运行到yield的时候会停止,需要__next__取出yield后面的值
    2.生成器表达式返回得到的生成器
    g=(i for i in (1,2,3))
    
    
    yield关键字生成的生成器传参方法:使用send方法
    对象.send('需要传递的数据')
  • 相关阅读:
    AutoFac (控制反转IOC 与依赖注入DI)
    【干货】利用MVC5+EF6搭建博客系统(一)EF Code frist、实现泛型数据仓储以及业务逻辑
    Log4.Net 在Winfrom、MVC、ashx程序里的使用,ashx程序里使用异步
    触发器
    游标的使用
    sql数据库快照与恢复 规则绑定
    磁盘恢复
    修改sql数据库名称
    MVC学习笔记
    NuGet包和功能
  • 原文地址:https://www.cnblogs.com/wangcuican/p/12709397.html
Copyright © 2011-2022 走看看