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的区别
- 详见 Python2和Python3的区别 一文。
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')