Python语言知识要点

  1. 集合支持一系列标准操作。
    a = t | s # t与s的并集 b = t & s #t和s的并集 c = t - s # 差集 d = t ^ s # 对称差集(项在t或s中,但不会同时出现在两者中) 集合的更多操作
  2. 引用与复制
    浅复制
    在这里插入图片描述
    在上面这个例子中,a和b是单独的列表对象,但是他们包含的元素是共享的。因此,修改b的一个元素也会修改a中对应的元素。
    如果是a = b赋值,a与b完完全全是相同的对象,如果是b = a[:], b = list(a), b = a.copy(), 这三种方法,里面第一层的元素是非公用的,但是里面嵌套的[]是公用的。只有使用copy.deepcopy()元素才是全部非共享
    b = a[:]赋值在这里插入图片描述
    d = list©赋值
    在这里插入图片描述
    f = e.copy()赋值
    在这里插入图片描述

深复制
在这里插入图片描述

  1. 对象
    列表,字典可以存储对象,函数可以返回函数对象本身,对象类可以动态生成,也可以动态添加函数。
    列表存对象
    在这里插入图片描述
    字典存储对象
    在这里插入图片描述
    假定要通过正确的类型转换把一行文本GOOG, 100, 490.10转换为一个字段列表,利用上述知识
    在这里插入图片描述
    返回函数
    在这里插入图片描述
    动态地给class绑定属性和动态地绑定函数
    在这里插入图片描述
    利用type()动态地创建类
    在这里插入图片描述

  2. @property装饰器
    使用@property可以在类通过像访问属性一样调用函数
    在这里插入图片描述

  3. complex() 函数 (复数)
    在这里插入图片描述

  4. 字符串操作方法

  5. any()all()的使用
    上面两个函数可以用来判断一个序列中是否有False的情况
    是否全为真
    在这里插入图片描述
    是否有一个为真
    在这里插入图片描述

  6. << >>运算符
    a = 60
    二进制为 0011 1100
    在这里插入图片描述
    11.python所有内置函数
    12.python heapq-模块
    13.sort()和sorted()的不同,sort()用在list上,后者用在所有可迭代对象上.参考文章1参考文章2
    14.廖雪峰Python高阶函数教程. itertools模块

鸭子类型

在这里插入图片描述

monkey patch

在这里插入图片描述

猴子补丁ex

在这里插入图片描述

python3改进

在这里插入图片描述

Python3新增

在这里插入图片描述

Python3改进

在这里插入图片描述

Python如何传递参数

在这里插入图片描述
在这里插入图片描述

第一个输出[0], [0, 0], 第二个输出 ’ hehea’, ’ hehea’

在这里插入图片描述

输出[1, 1], [1, 1, 1]

什么是Cpython GIL

在这里插入图片描述

GIL的影响

在这里插入图片描述

如何规避GIL影响

在这里插入图片描述

为什么有了GIL还要关注线程安全

在这里插入图片描述

通过线程锁来确保安全线程安全

在这里插入图片描述
在这里插入图片描述

服务器性能优化措施

在这里插入图片描述
在这里插入图片描述

什么是生成器

在这里插入图片描述

基于生成器的协程

在这里插入图片描述

廖雪峰协程教程和评论解释

在这里插入图片描述
在这里插入图片描述

explain,总结就是r = yield 1语句,左边执行完后并返回结果,并且函数进入暂定状态,在下一次使用send() or next()的时候,再赋值给r,函数再继续执行下去。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基于生成器的协程

在这里插入图片描述

协程的注意点

在这里插入图片描述

协程装饰器

在这里插入图片描述

单元测试

在这里插入图片描述

单元测试相关的库

在这里插入图片描述

单元测试ex

在这里插入图片描述

常用内置数据结构和算法

在这里插入图片描述

namedtuple()

在这里插入图片描述
在这里插入图片描述

队列 deque()

在这里插入图片描述

计数器 Counter

在这里插入图片描述

顺序字典 OrderedDict()

在这里插入图片描述

初始化默认值字典 defaultdict()

在这里插入图片描述

Python dict 底层结构

在这里插入图片描述

哈希冲突

开放地址法

在这里插入图片描述

链式地址法

在这里插入图片描述

建立公共溢出区 再哈希法

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

LRUCache?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

算法常考点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

链表

在这里插入图片描述

队列

在这里插入图片描述

在这里插入图片描述

字典与集合

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

TopK

在这里插入图片描述
在这里插入图片描述

栈:

使用两个队列实现栈

class MyStack:

    def __init__(self):
        """
        Initialize your data structure here.
        """
        self.l1 = []
        self.l2 = []


    def push(self, x: int) -> None:
        """
        Push element x onto stack.
        """
        if self.l1:
            self.l1.append(x)
        else:
            self.l2.append(x)


    def pop(self) -> int:
        """
        Removes the element on top of the stack and returns that element.
        """
        if self.l1: # 1不空, 2空
            # pop to l2
            while self.l1:
                if len(self.l1) == 1:
                    return self.l1.pop(0)
                else:
                    self.l2.append(self.l1.pop(0))
        else:
            while self.l2:
                if len(self.l2) == 1:
                    return self.l2.pop(0)
                else:
                    self.l1.append(self.l2.pop(0))


    def top(self) -> int:
        """
        Get the top element.
        """
        if self.l1: # 1不空, 2空
            # pop to l2
            while self.l1:
                if len(self.l1) == 1:
                    tmp = self.l1.pop(0)
                    self.l2.append(tmp)
                    return tmp
                else:
                    self.l2.append(self.l1.pop(0))
        else: # 2不空, 1空
            while self.l2:
                if len(self.l2) == 1:
                    tmp = self.l2.pop(0)
                    self.l1.append(tmp)
                    return tmp
                else:
                    self.l1.append(self.l2.pop(0))


    def empty(self) -> bool:
        """
        Returns whether the stack is empty.
        """
        if self.l1 or self.l2:
            return False
        else:
            return True



# Your MyStack object will be instantiated and called as such:
# obj = MyStack()
# obj.push(x)
# param_2 = obj.pop()
# param_3 = obj.top()
# param_4 = obj.empty()

队列

用两个栈实现队列

class MyQueue:

    def __init__(self):
        """
        Initialize your data structure here.
        """
        self.l1 = [] # 进
        self.l2 = [] # 出


    def push(self, x: int) -> None:
        """
        Push element x to the back of queue.
        """
        self.l1.append(x)


    def pop(self) -> int:
        """
        Removes the element from in front of queue and returns that element.
        """
        
        if self.l2: # l2有存
            return self.l2.pop()
        else:
            # l1 -> l2
            while self.l1:
                self.l2.append(self.l1.pop())
            # l1:[], 
            return self.l2.pop()
            

    def peek(self) -> int:
        """
        Get the front element.
        """
        if self.l2: # l2有存
            return self.l2[-1]
        else:
            # l1 -> l2
            while self.l1:
                self.l2.append(self.l1.pop())
            # l1:[], 
            return self.l2[-1]


    def empty(self) -> bool:
        """
        Returns whether the queue is empty.
        """
        if self.l2 or self.l1:
            return False
        else:
            return True



# Your MyQueue object will be instantiated and called as such:
# obj = MyQueue()
# obj.push(x)
# param_2 = obj.pop()
# param_3 = obj.peek()
# param_4 = obj.empty()

在这里插入图片描述
在这里插入图片描述

Python字符串常考算法题

在这里插入图片描述

字符串

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

组合与继承

在这里插入图片描述

类变量和实列变量的区别

在这里插入图片描述

classmethod、staticmethod

在这里插入图片描述
在这里插入图片描述

什么是元类、使用场景

在这里插入图片描述
使用type定义元类,下面X的生成是等效的
在这里插入图片描述
ex 2
在这里插入图片描述
ex 3
在这里插入图片描述

newinit 的区别

在这里插入图片描述
继承元类ex
在这里插入图片描述

Python装饰器

在这里插入图片描述
在这里插入图片描述
如何使用类编写装饰器
在这里插入图片描述

如何给装饰器增加参数

在这里插入图片描述

设计模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

工厂模式

在这里插入图片描述
在这里插入图片描述

构造模式

在这里插入图片描述
Computer
在这里插入图片描述
ComputerBuilder
在这里插入图片描述
Engineer
在这里插入图片描述

原型模式

在这里插入图片描述

单例模式

在这里插入图片描述
单例模式

import threading
class Singleton(object):
    _instance_lock = threading.Lock()

    def __init__(self):
        pass


    def __new__(cls, *args, **kwargs):
        if not hasattr(Singleton, "_instance"):
            with Singleton._instance_lock:
                if not hasattr(Singleton, "_instance"):
                    Singleton._instance = object.__new__(cls)  
        return Singleton._instance

ex 2

class Singleton2:
    _obj = None
    _init_flag = False

    def __new__(cls, *args, **kwargs):
        if not cls._obj:
            cls._obj = object.__new__(cls)
        return cls._obj

    def __int__(self, name):
        if not Singleton2._init_flag:
            print('init')
            Singleton2._init_flag = True

结构型模式

在这里插入图片描述
在这里插入图片描述

代理模式

在这里插入图片描述

Python函数式编程常考题

在这里插入图片描述

函数式编程

在这里插入图片描述
在这里插入图片描述

什么是闭包

在这里插入图片描述
在这里插入图片描述
闭包执行流程
在这里插入图片描述
被装饰的函数带参数多层闭包
ex1
在这里插入图片描述
ex2
在这里插入图片描述

常见Linux

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

操作系统线程和进程常考题

在这里插入图片描述
在这里插入图片描述

线程安全

在这里插入图片描述

进程间通讯

在这里插入图片描述
在这里插入图片描述

python多进程

在这里插入图片描述

操作系统内存管理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

虚拟内存

在这里插入图片描述

内存抖动

在这里插入图片描述

Python垃圾回收机制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标记清除

在这里插入图片描述

分代回收

在这里插入图片描述
在这里插入图片描述

网络协议, 浏览器输入url过程

在这里插入图片描述
在这里插入图片描述

TCP三次握手过程

在这里插入图片描述

TCP四次挥手过程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

HTTP协议

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Cookies 和Sessions

在这里插入图片描述
在这里插入图片描述

常见网络编程题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用socket发送http请求

在这里插入图片描述
在这里插入图片描述

IO多路复用常用题

在这里插入图片描述

五种IO模型

在这里插入图片描述
在这里插入图片描述

提升并发能力

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

select/poll/epoll区别

在这里插入图片描述

Python 如何实现IO多路复用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

网络并发库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Mysql

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ACID四个基本特性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四种事务隔离级别

在这里插入图片描述
在这里插入图片描述

解决高并发场景下的插入重复

在这里插入图片描述

乐观锁和悲观锁

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

InnoDB VS MyISAM

在这里插入图片描述

Mysql 索引

在这里插入图片描述
在这里插入图片描述

B-Tree

在这里插入图片描述

查找结构进化史

在这里插入图片描述

B树

在这里插入图片描述

B+树

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

什么时候创建索引

在这里插入图片描述

创建索引的注意事项

在这里插入图片描述

索引失效

在这里插入图片描述

聚集索引和非聚集索引

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

聚集索引与辅助索引

在这里插入图片描述
在这里插入图片描述

如何排查慢查询

在这里插入图片描述
在这里插入图片描述

Sql语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Redis

在这里插入图片描述

缓存

在这里插入图片描述

操作时间对比

在这里插入图片描述

Redis和Memcached

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Redis实现的跳跃表

在这里插入图片描述

Redis持久化

在这里插入图片描述
在这里插入图片描述

Redis事务

在这里插入图片描述

Redis实现分布式锁

在这里插入图片描述

缓存的模式

在这里插入图片描述

缓存穿透问题

在这里插入图片描述

缓存击穿问题

在这里插入图片描述

缓存雪崩问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Python WSGI

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

web安全问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

前后端分离

在这里插入图片描述
在这里插入图片描述

RESTful

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

系统设计考点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值