360-PythonWeb工程师面试题

2018/03/24 面试题

1、请拿出B表中的accd,(A表中和B表中的一样的数据)

select * from B inner join on B.name = A.name

2、a = “abbbccc”,用正则匹配为abccc,不管有多少b,就出现一次

思路:不管有多少个b替换成一个

re.sub(r’b+’, ‘b’, a)

3、xpath使用的什么库?

lxml

4、py2和py3的区别

5、redis里面list内容的长度?

len key_name

6、多线程交互,访问数据,如果访问到了就不访问了,怎么避免重读?

创建一个已访问数据列表,用于存储已经访问过的数据,并加上互斥锁,在多线程访问数据的时候先查看数据是否已经在已访问的列表中,若已存在就直接跳过.

7、Mysql怎么限制IP访问?

grant all privileges on . to ‘数据库中用户名’@’ip地址’ identified by ‘数据库密码’;

8、带参数的装饰器

带定定长参数的装饰器

def new_func(func):
    def wrappedfun(username,passwd):
        if username == 'root' and passwd == '123456789':
            print('通过认证!')
            print('开始执行附加功能')
            return func()
        else:
            print('用户名或密码错误')
            return
    return wrappedfun

@new_func
def orign():
    print('开始执行函数')
orign('root','123456789')

带不定长参数的装饰器

def new_func(func):
    def wrappedfun(*parts):
        if parts:
            counts = len(parts)
            print('本系统包含 ', end='')
            for part in parts:
                print(part, ' ', end='')
            print('等', counts, '部分')
            return func()
        else:
            print('用户名或密码错误')
            return func()

    return wrappedfun

@new_func
def orign():
    print('开始执行函数')
 orign('硬件', '软件', '用户数据')

同时带不定长、关键字参数的装饰器

def new_func(func):
    def wrappedfun(*args,**kwargs):
        if args:
            counts = len(args)
            print('本系统包含 ',end='')
            for arg in args:
                print(arg,' ',end='')
            print('等',counts,'部分')
            if kwargs:
                for k in kwargs:
                    v= kwargs[k]
                    print(k,'为:',v)
            return func()
        else:
            if kwargs:
                for kwarg in kwargs:
                    print(kwarg)
                    k,v = kwarg
                    print(k,'为:',v)
            return func()
    return wrappedfun

@new_func
def orign():
    print('开始执行函数')

orign('硬件','软件','用户数据',总用户数=5,系统版本='CentOS 7.4')

Search

    Table of Contents