2020-04-23面试备忘

-- encoding: utf-8 --

"""
@File : test.py
@Time : 2020/4/13 15:05
@Author : wanghaochen
"""

二叉树排序, 小的放左边,大的放右边, 如果右边已经有了, 比较子节点的值, 大的放左边, 小的放右边

每一个值看做一个对象, 有左右之分

class Btree:

def init(self, node):

self.node = node

self.left = None

self.right = None

self.root = Btree(self.l[0])

def makeTree(self,cos,node):

res_list = []

if cos < node.node and node.left == None:

node.left = Btree(cos)

elif cos < node.node and node.left != None:

node.left = node.makeTree(cos,node.left)

elif cos > node.node and node.left == None:

node.right = Btree(cos)

elif cos < node.node and node.right != None:

node.right = node.makeTree(cos, node.right)

res_list.append(node.left.node)

def get_data(self):pass

l = [1, 2, 3, 4, 5]

map 映射 sorted 排序 filter 过滤

使用lambda返回的是列表

ll = {'dddd': 5, 'ddd': 8}

def fun(dic):
for key in dic:
dic[key] += 1
return dic

print sorted(ll,reverse=True)

print map(lambda x:x,ll)

def func(x):
a = 0
b = 1
while b < x:
b, a = a + b, b
yield a

用yield返回值的函数是生成器 用括号括起来的列表生成式 是生成器

迭代器 实现了iter方法, 可以用next()放法取值,列表,字典,字符串,元组是可迭代对象,不是迭代器

迭代器表示的是数据流,可以被next()函数不断调用返回下一个值,节约内存

可以用for循环的是iterable, 可以被next()调用的是迭代器,用yield方法返回值的是生成器

print list(func(50))

from collections import OrderedDict, Counter

dic = {'name':"da",'age':55}

dic = OrderedDict(dic)

# sorted 中 key 是根据什么来排序

sorted(dic,key=lambda i:i[0])

dddd = 'ddagdgdagdafdsa'

print Counter(dddd)

print dic

dd = "ddd"

s = 'eeee'

l1 = filter(lambda x:x==2,l)

print s.join(dd)

a = [1, 5, 1, 2, 3]

b = [1,2,3]

c = [1,2,3]

res = [i for i in zip(a,b,c)]

print res

udpate student set name = "dd" where id = 55

dd = []

for i in range(len(a)):

print min(a)

dd.append(min(a))

a.remove(min(a))

remove方法,移除第一找到的元素

a.remove(1)

print a

class Student(object):

_ins = None

# def init(self):

def new(cls, *args, **kwargs):

if not cls._ins:

_ins = object.new(cls)

return cls._ins

else:

return cls._ins

st = Student()

dd = Student()

print st is dd

a = 55.365

print '%.02f' % a

垃圾回收机制

引用计数

+1 变量创建, 被引用, 被传参

-1 变量被显式删除 , 别名重新赋值, 离开作用域[比如函数内部作用域] 所在容器被销毁

分代清除

分三代, 创建时间越短, 被检查清理的频率越高

import gc

# gc模块,设置日志,检查哪代进行回收,设置回收频率,查看当前计数器, 设置阙值触发垃圾回收检查

gc.set_debug(gc.DEBUG_LEAK)

s =88

print gc.get_count()

gc.collect(2)

print(gc.garbage)

print(gc.collect())

print(gc.garbage)

print gc.get_count()

class A(object):

def dd(self):

print 88

class B(A):

def dd(self):

super(B,self).dd()

print 999

print B().dd()

301 永久重定向 302 临时重定向 400 请求语法错误或参数错误 401 认证失败 403 拒绝

dic ={'name':55 , 'age':8}

# print dic.pop('age')

# del dic['age']

纸牌模型

import random
from collections import namedtuple

Card = namedtuple('Card', ['rank', 'suit'])

class FrenchDesk(object):
ranks = [str(n) for n in range(2, 11)] + list('JQKA')
suits = 'spades diamonds clubs hearts'.split()
_cards = None

def __init__(self):
    self._cards = [Card(rank, suit) for suit in self.suits for rank in self.ranks]

def __len__(self):
    return len(self._cards)

def __getitem__(self, position):
    return self._cards[position]

# def __iter__(self):
#     return self._cards
def random(self):
    return random.choice(self._cards)

deck = FrenchDesk()

suit_values = dict(spades=3, hearts=2, diamonds=1, clubs=0)

def spades_high(card):
rank_value = FrenchDesk.ranks.index(card.rank)
return rank_value * len(suit_values) + suit_values[card.suit]

print deck.random()

print Card(rank='10', suit='spades') in deck

deck_new = sorted(deck,key = spades_high)

向量模型

hypot函数用来求绝对值 hypot(3,4) = 5

%r 可以重现它所代表的对象

from math import hypot

print(hypot(3, 4))

class Vector(object):

def __init__(self, x=0, y=0):
    self.x = x
    self.y = y

# 当打印时,如果没有__str__方法,会优先调用__repr__方法
def __repr__(self):
    return 'Vector(%r,%r)' % (self.x, self.y)

def __abs__(self):
    return hypot(self.x, self.y)

def __bool__(self): pass

python2中,变量泄露,i=9 python3中,i=555,局部变量

i = 555
u = [i for i in range(10)]
print(i) # i=9

笛卡尔积

colors = ['black', 'white']
sizes = ['S', 'M', 'L']
group = [(color, size) for color in colors for size in sizes]

import os

print os.path

创建字典

l = ('a', 'b')
l1 = ('1', '2')
print(dict(zip(l, l1)))

namedtuple

_asdict()方法可以转化成有序字典orderdict

_make()方法生成实例

from collections import namedtuple

ff = namedtuple('ff', 'name,age')
xh = ff('xh', '15')

print ff._fields

data = ('xl', 25)

print ff._make(data)

print xh._asdict()

元组方法展示

e = (1, 2)

print id(e)

e1 = (3, 4)

e += e1

print id(e)

列表方法, 在原来的基础上扩容,列表还是之前的列表

e.remove(1) 删除匹配到的第一个元素

e.clear() 删除所有元素

切片生成的新列表

e = [1, 2]
print(id(e))
e1 = [3, 4]
e += e1
e2 = e[0:1]
print(id(e))
print(id(e2))

with语句试用于对资源访问的场合,确保不管是否发生异常,都会进行必要的清理

redis支持的数据类型 string list set hash 有序集合

redis持久化支持两种方式,快照形式和 追加更新的方式

mysql主从同步

主从存在意义, 读写分离(1,读比写要频繁.2,写涉及到锁,行锁,表锁,块锁等等)

用途和条件.

用途(1,实时灾备,用于故障切换.2,读写分离.3,备份)

条件(1,主库开启binlog日志<用来存储sql语句,或将要更新的每一条数据>. 2,主从server_di不同3,从服务器连接主服务器)

主要原理

master

1,当主数据库放生变化时,会将变化的先后顺序写入到bin-log中.

2,当从服务器连接到主服务器,主会开启binlog dump线程.

3,当主的binlog发生变化时,线程会通知从,并将binlog发送过去.

slave

开启两个线程,i/o线程和sql线程.i/o线程接受binlog日志并写入relay log中(中继日志).2,sql线程读取relay log,然后进行操作

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容