首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >该函数应返回包含重复数据参数的数组

该函数应返回包含重复数据参数的数组
EN

Stack Overflow用户
提问于 2017-03-24 16:24:44
回答 1查看 15关注 0票数 0

我的代码没有通过一些隐藏的测试,我需要帮助

单元测试

代码语言:javascript
复制
def replicate_recur(a, b):
       #checking for correctness of 'a' type
       if not isinstance(a, int) and not isinstance(a, str):
           raise ValueError

       #checking for correctness of 'b' type
       if not isinstance(b, int) and not isinstance(b, str):
           raise ValueError

    #exit from function
       if a <= 0:
           return []

       res = replicate_recur(a - 1, b)

       res.append(b)

       #returning of result
       return res

    #iterative function
    def replicate_iter(a, b):
       #checking for correctness of 'a' type
       if not isinstance(a, int):
           raise ValueError

       res = []

       for i in range(a):
           res.append(b)

       return res

    a, b = (3,5)
    try:
       print replicate_recur(a, b)
    except ValueError:
       print "Wrong 'a or b' type"

    try:
       print replicate_iter(a, b)
    except ValueError:
       print "Wrong 'a or b' type"
EN

回答 1

Stack Overflow用户

发布于 2017-03-24 16:29:34

不确定它是否完全覆盖了我们无法猜测的“隐藏测试”,但是:

代码语言:javascript
复制
if not isinstance(a, int) and not isinstance(a, str):

为什么要接受a (或b)是字符串呢?

如果放手不管,那么在评估a - 1时会得到TypeError,这与ValueError不同(在此之前,if a <= 0:在Python3中会因另一个TypeError异常而失败)

因为您的主程序不能捕获TypeError,所以测试可能会失败。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42994625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档