Python 测试开发面试题
本帖最后由 素简生香 于 2017-12-22 11:13 编辑1.请描述下面代码实现的最终功能,给出2个以上的测试用例,验证代码的 Bug;
2.用简短的文字,描述下面代码的实现逻辑;
3.在原有代码基础上,增加统计元素分组计数的功能;
def groupByElement(lst):
''' 元素分组 '''
result = [[]]
length = len(lst)
i = 0
for i in range(length-1):
if lst == lst:
result[-1].append(lst)
else:
result[-1].append(lst)
result.append([])
result[-1].append(lst)
return result
答案回复可见:
**** Hidden Message *****
1.最终功能是将相同元素分组归类,用例1验证遍历分组是否正确,A=【1,1,2,3】,预期结果【【1,1】,【2】,【3】】,用例2验证lst长度,A=【】,预期结果代码报错,len(list)=0,range(0.-1)代码运行错误;用例3
2.定义个空数组,获取lst长度,i从0到len(lst)遍历,如果i元素和i+1元素相等,就归类放在result最后一个数组里面。不相等就另外生成一个空数组,循环遍历。
3.def groupByElement(lst):
''' 元素分组 '''
result = [[]]
length = len(lst)
i = 0
j = 0
for i in range(length-1):
if lst == lst:
result[-1].append(lst)
else:
result[-1].append(lst)
result.append([])
j=j+1
result[-1].append(lst)
return result,j 1、
a.普通 list 分组,groupByElement()。
结果:最后一个元素没有被分组,倒数第二个元素被分组两次(result[-1].append(lst)所致)
b.乱序分组,groupByElement()。
结果:所有 value 为 1 和 2 元素未正确分组
c.异常测试,传参为非 list ,groupByElement()。
结果:调用出错
2、通过循环将序列中当前索引元素和后一个索引元素的值,将相同的值传入到同一个 list 中,最后返回所有 list 的集合
3、
def groupByElement(lst):
''' 元素分组 '''
result = [[]]
lst = list(lst)
lst.sort()
length = len(lst)
#存取分组长度
n = 0
ll = []
for i in range(length-1):
if lst == lst:
result[-1].append(lst)
n += 1
else:
ll.append(n + 1)
n = 0
result[-1].append(lst)
result.append([])
result[-1].append(lst[-1])
ll.append(n + 1)
#遍历获取长度
#for i in xrange(len(result)):
# ll.append(len(result))
return {'group':result,'len':ll} grace元芳 发表于 2017-12-14 18:06
1.最终功能是将相同元素分组归类,用例1验证遍历分组是否正确,A=【1,1,2,3】,预期结果【【1,1】,【2】 ...
你python学得不错啊
anzhang28 发表于 2017-12-14 18:12
1、
a.普通 list 分组,groupByElement()。
结果:最后一个元素没有被分组,倒数第二个元 ...
你python学得不错啊
好题 本帖最后由 本才 于 2017-12-15 10:05 编辑
# -*- coding:utf-8 -*-
# 最后一问的个人实现
def groupByElement(lst):
''' 元素分组 '''
if type(lst) != list:
return (0,[])
else:
for element in lst:
if type(element) == list:
return (0,[])
result = [[]]
length = len(lst)
i = 0
count = 1
for i in range(length-1):
if lst == lst:
result[-1].append(lst)
else:
result[-1].append(lst)
result.append([])
count += 1
#result[-1].append(lst)
result[-1].append(lst)
return (count,result)
#可测用例1 print groupByElement(,3])
#可测用例2 print groupByElement() 看看 关注下 执行完 还是返回这个(0, []) :) if lst == lst:
这句是什么意思?没有太明白。。 好期待 testing444555 发表于 2017-12-15 16:30
if lst == lst:
这句是什么意思?没有太明白。。
比较元素组中是否存在相册的元素,如果存在相同测执行下面代码块,不存在则执行else代码块。 不几道 学习 :victory: 啊 11111 Test