肖sir ___面试题____吉利

发布时间 2023-03-23 18:19:18作者: xiaolehua

面试题:

1、一个字典中有无数个数字典作为值 ,取出所有键?

解答:(1)用到递归方法

def get_keys(d):
    keys = []
    for k, v in d.items():
        keys.append(k)
        if isinstance(v, dict):
            keys.extend(get_keys(v))
    return keys

其中,参数 d 为要取出键的字典。函数中,首先遍历字典的键值对,将键添加到 keys 列表中。如果值是一个字典,就递归调用 get_keys 函数,将返回的键列表添加到 keys 列表中。最后,返回 keys 列表。

(2)使用无线遍历循环求出

class a3:
key_list = []

def get_key(self, dict_a):
"""多维/嵌套字典数据无限遍历,获取json返回结果的所有key值集合"""
if isinstance(dict_a, dict):
for x in range(len(dict_a)):
temp_key = list(dict_a.keys())[x]
temp_value = dict_a[temp_key]
self.key_list.append(temp_key)
self.get_key(temp_value) # 自我调用实现无限遍历
elif isinstance(dict_a, list):
for k in dict_a:
if isinstance(k, dict):
for x in range(len(k)):
temp_key = list(k.keys())[x]
temp_value = k[temp_key]
self.key_list.append(temp_key)
self.get_key(temp_value)
return self.key_list

2、python求出一个无需数组和一个目标值target100?

解答:

#给定一个无序数组nums和一个目标值target,返回数组中两个元素的和为target的算法,时间复杂度为O(1);
def func1(nums,target):
dict1 = {}
for i in range(len(nums)):
num = target - nums[i]
if num not in dict1:
dict1[nums[i]] = i
else:
return (dict1[num],i)

要解释:

3、python去重有几种方法?

(1)set方法

(2)字典去重

(3)用循环查找的方式

if not  in   

(4)keys()方式

f= list({}.fromkeys(li4).keys())
print (f)等

4、你linu熟悉吗?

熟悉;查看日志tail -f   ,chmod 修改权限,ps -ef|grep    服务名称  查看服务名称,ps -aux     查看所有执行进程、kill 杀死进程

5、三表联查方法??

(1)三表隐藏内连接

格式:select * FROM 表1   ,表2,表3  where 表1.关联字段=表2.关联字段    and  表2.关联字段=表3.关联字段 ;

(2)三表普通内连接

 格式:select * FROM 表1   inner  join   表2 on  表1.关联字段=表2.关联字段   inner  join   表3   on   表2.关联字段=表3.关联字段 ;

(3)三表左连接

 格式:select * FROM 表1   left  join   表2 on  表1.关联字段=表2.关联字段   left  join   表3   on   表2.关联字段=表3.关联字段 ;

案例:select  *   FROM   student a  left JOIN sc b   on    a.stu_no=b.stu_no  left JOIN course c on  b.c_no=c.c_no ;

(4)三表右连接

 格式:select * FROM 表1   right join   表2 on  表1.关联字段=表2.关联字段   right  join   表3   on   表2.关联字段=表3.关联字段 ;

案例:select  *   FROM   student a  right JOIN sc b   on    a.stu_no=b.stu_no  right JOIN course c on  b.c_no=c.c_no ;

(5)、先合两个表,在合另一张表

格式:select   *  from (select    字段名   FROM 表1   right join   表2 on  表1.关联字段=表2.关联字段 )别名,表3 where 

合表.关联字段=表3.关联字段

select  *  from  (select  a.stu_no,stu_name,sex ,age ,edit ,sc_no ,c_no ,score FROM   student a  right JOIN sc b   on    a.stu_no=b.stu_no)s ,course c  where s.c_no=c.c_no  ;

 (6)把三表单成单表理解

 (SELECT b.*,c.* FROM sc a,student b,course c WHERE a.stu_no=b.stu_no AND a.c_no=c.c_no)s 当成单表
select * from (SELECT b.*,c.* FROM sc a,student b,course c WHERE a.stu_no=b.stu_no AND a.c_no=c.c_no)s

6、你负责一个项目,后期要负责之前同事的项目,你能保证质量吗?

可以,

(1)、将现在的需求保证,

(2)、回归测试

(3)、在原有的用例上增补用例,保证项目的稳定性

(4)、实现自动化测试

(5)、从显性需求,隐性需求,关联模块,认为可能出错的模块