首页 > 代码库 > python 面试总结

python 面试总结

金* python开发工程师:

1. 字符串连接+和join的区别:

主要考察两种实现方式内存管理:

      字符串对象是不可改变的,Python创建一个字符串后,你不能把这个字符中的某一部分改变。任何对字符串的操作包括‘+‘操作符, 每次‘+’连接时都将申请一个内存空间,创建一个新的字符串对象存入,而不是改变原来的对象.

       ‘ ‘.join([]),使用列表拼接,列表是可以改变的,因此使用‘ ‘.join([])连接成字符串,申请了一次内存空间,内建了一次,节省了很多资源和时间。

      NOTE:字符串不可改变的现象其实这也是有变通的办法的,可以用_strlist=list(str)这个内建函数把str变为由单个字符为成员的list,这样的话就可以使用_strlist[3]=‘a’的方式改变值,然后再使用‘ ‘.join(_strlist)还原成字符串。



2.如何判断某个SQL查询命中已定义的索引:



3. Innodb和MyIASM引擎的差别(主要问索引方面):

    数据结构都是B+Tree

    MyIASM,B+Tree数据结构中存储的内容是数据的地址值,也就是索引和实际的数据是分开的,使用索引指向数据,这种索引模式称为非聚集索引

    Innodb , B+Tree数据结构中存储的是实际数据,这种索引被称为聚集索引

    聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致,聚集索引表记录的排列顺序与索引的排列顺序一致的.插入比非聚集索引慢,查询比其快;

4.装饰器的实现:


5.问到docker,没有了解,回答不上来


6.contentmanger


豆* Python开发工程师:

  1. 按指定number,求字符串中等于number个数的字符串最长子串。

def get_str(s, n):
    i = n
    _start = 0
    _list =[]
    while True:
        if i <= len(s) and _start <= len(s):
            _str = len(set(s[_start:i]))
            if _str == n:
                _list.append(s[_start:i])
                i += 1
            elif _str < n:
                i += 1
            else:
                _start += 1
                i = _start + n
        else:
            break
    _list = sorted(_list, key=lambda x:len(x))
    return _list[-1]


  1. 函数实现?,*通配符。

  2. 设计文章,用户推荐信息表结构:

    I.写出某文章所有推荐用户SQL查询语句.

    II.写出某个用户所有推荐,按时间倒序排序语句.

    III.删除谋篇内容和相关推荐.










python 面试总结