前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 一个面试题

python 一个面试题

作者头像
雷子
发布2021-03-15 16:17:06
1860
发布2021-03-15 16:17:06
举报
文章被收录于专栏:雷子说测试开发

看到一个题目:

代码语言:javascript
复制
给定一个数组 nums 和一个值 val,
你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度

这是一个简单的题目,给定一个数组,如果存在val 就原地去删除这个val,然后返回新的数组的长度。

那么我们可以用for循环去取元素,如果元素等于val。那么就删除这个元素。

那么我们的代码应该如何实现呢,我们这里给下示例。

代码语言:javascript
复制
class Solution:
    def removeElement(self,nums:list,val)->int:
        if len(nums)==0:
            return 0
        if len(nums)==1:
            if nums[0]==val:
                return 0
            else:
                return 1
        for item in(nums):
            if item==val:
                nums.remove(item)
        return len(nums)

思路,我们先考虑一些特殊的场景,特殊的场景先简单的排除,这样便于后续的操作。

那么我们可以写些测试用例,去看看,能否满足场景。要学会去测试我们的代码。

代码语言:javascript
复制
from .listremove import  Solution
import  unittest
class testcase(unittest.TestCase):
    def setUp(self) -> None:
        self.sonlution=Solution()
    def testone(self):
        assertreslut=self.sonlution.removeElement([],0)
        self.assertEqual(assertreslut,0)
    def testtwo(self):
        assertreslut=self.sonlution.removeElement([1],0)
        self.assertEqual(assertreslut,1)
    def testthree(self):
        assertreslut=self.sonlution.removeElement([0],0)
        self.assertEqual(assertreslut,0)
    def testfour(self):
        assertreslut=self.sonlution.removeElement([0,1],2)
        self.assertEqual(assertreslut,2)
    def testfive(self):
        assertreslut=self.sonlution.removeElement([0,1],1)
        self.assertEqual(assertreslut,1)
    def tearDown(self) -> None:
        pass
if __name__=="__main__":
    unittest.main()

测试结果

代码覆盖率

简单的进行覆盖率的统计。对运行结果进行一个简单的分析,做到心中有数。代码覆盖率的百分之百不代表没bug,但是代码覆盖率没有100%一定漏测。

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

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

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

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

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