素简生香 发表于 2017-12-14 15:34:36

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 *****




grace元芳 发表于 2017-12-14 18:06:17

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

anzhang28 发表于 2017-12-14 18:12:43

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}

素简生香 发表于 2017-12-15 09:40:47

grace元芳 发表于 2017-12-14 18:06
1.最终功能是将相同元素分组归类,用例1验证遍历分组是否正确,A=【1,1,2,3】,预期结果【【1,1】,【2】 ...

你python学得不错啊

素简生香 发表于 2017-12-15 09:41:02

anzhang28 发表于 2017-12-14 18:12
1、
a.普通 list 分组,groupByElement()。
结果:最后一个元素没有被分组,倒数第二个元 ...

你python学得不错啊

本才 发表于 2017-12-15 09:48:41

好题

本才 发表于 2017-12-15 10:03:56

本帖最后由 本才 于 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()

朋友啊朋友 发表于 2017-12-15 11:20:35

看看

黑盒测试 发表于 2017-12-15 14:00:44

关注下

黑盒测试 发表于 2017-12-15 14:46:09

执行完 还是返回这个(0, [])

testing444555 发表于 2017-12-15 16:21:55

:)

testing444555 发表于 2017-12-15 16:30:30

if lst == lst:
这句是什么意思?没有太明白。。

jiayouhuaya 发表于 2017-12-15 17:30:45

好期待

yuan_mr 发表于 2017-12-18 10:00:40

testing444555 发表于 2017-12-15 16:30
if lst == lst:
这句是什么意思?没有太明白。。

比较元素组中是否存在相册的元素,如果存在相同测执行下面代码块,不存在则执行else代码块。

lilypaprika7272 发表于 2017-12-18 12:57:50

不几道

mawq0066 发表于 2017-12-18 18:26:17

学习

jingzizx 发表于 2017-12-19 08:23:19

:victory:

dfqddd 发表于 2017-12-19 21:21:29

andykobewu 发表于 2017-12-20 13:47:34

11111

test苗 发表于 2017-12-20 14:31:03

Test
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: Python 测试开发面试题