前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >聊聊面试题之编程题目(四)

聊聊面试题之编程题目(四)

作者头像
雷子
发布2021-03-15 15:23:35
2790
发布2021-03-15 15:23:35
举报
文章被收录于专栏:雷子说测试开发

前面的三面文章,聊聊面试题之编程题目(三)聊一聊测试中常见的面试题(二)聊一聊测试中常见的面试题(一)都对测试面试一些题目的总结,今天在家想到了之前的一个面试题,当时呢,题目虽然不难,但是对我的印象挺深刻的。

大概是前年的时候,一次出去面试遇到的一道题,但是面试官是我见过的所有面试中,考法挺特别的,其实特别之处呢,是笔试程序后,面试官说回答的是对的,但是面试官立即让我写单元测试,可是但是面试的时候,我是很懵逼的,第一次遇到这种情况,我当时写的是不是一个函数,也不是一个类, 让我单测,为了去单测,我不得不去修改当时的代码,最后单元测试是完成了,但是对于我来说是很尴尬的,我写完就知道当次面试肯定不过的。后来结果也验证了我的猜想,我当时没有对代码进行一定的设计。

那么今天我来给大家看看这道题目,当时面试官给到的题目是这样的。

代码语言:javascript
复制
给定一个list,要求把里面的数字处理成偶数在左边,
奇数在右边,不借助其他列表

分析:

题目是不难,我们知道给定的是一个list,我们要找list的里面的奇偶元素,那我去循环遍历里面的元素。是偶数的我们就移除后在插入。那么我们看看这道题怎么去用代码去实现。

代码语言:javascript
复制
def listto(insert_list):
    if type(insert_list)==list:
        if len(insert_list)==1 :
            if type(insert_list[0]) is not int:
                return False
            return insert_list
        for item in insert_list:
            try:
                if item%2==0:
                    insert_list.remove(item)
                    insert_list.insert(0,item)
            except :
                return False
        return  insert_list
    else:
        return False

对应的单元测试用例。

代码语言:javascript
复制
from listone import listto
import unittest, ddt

data = [{'list': [0], 'result': [0]},
        {'list': ["a"], 'result': False},
        {'list': 0, 'result': 0},
        {'list': [1, 1], 'result': [1, 1]},
        {'list': [1, 2], 'result': [2, 1]},
        {'list': [1, 2, 3], 'result': [2, 1, 3]},
        {'list': [1, 2, 3,'4'], 'result': False}]


@ddt.ddt
class MyTestCase(unittest.TestCase):
    def setUp(self):
        pass

    def tearDown(self):
        pass

    @ddt.data(*data)
    def test1(self, data):
        self.assertEqual(listto(data['list']), data['result'])


if __name__ == '__main__':
    unittest.main()

我们运行下:

我们看下覆盖率

到这里这道题,就实现了完毕了。

其实这只是千万的面试题中的一个特例,也只是很多面试题中的冰山一角。无论是面试,还是工作,我们一定要对代码有一定的设计。设计的代码要有一定的前瞻性。要可以拓展,可以扩充。

代码写不好,对人对己都不好。

设计要先行,高瞻远瞩去规划。

切勿直接写,写前先思考一下。

技术要评审,经得起别人质疑。

好的代码阅人无数,坏的代码坑人无数。

前人的坑后来人填,无数后来者泪两行。

如果你感觉文章,对你有用,请点击在看。本公众号,后续会持续更新更多的文章,希望可以帮助大家,如果你感觉对你有帮助,请点击关注。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档