循环遍历列表和逐个循环遍历对象之间的区别?

时间:2016-03-03 13:07:18

标签: python loops

我开始通过Codecademy学习Python,并思考一项练习,要求我编写一个程序,确定一个数字是否是素数。

当我的原始代码不起作用时,我做了一些研究并找到了可行的代码。我查看了它们两个,看起来它们之间没有区别,除了我用来循环遍历列表的事实,当工作代码使用while循环逐个循环遍历对象时,所以我想知道如果确实如此(如果是这样,它会产生什么不同)或者我的代码是否存在逻辑错误。

对于文本块,对不起,我将提供我的代码(不起作用)和答案代码(确实有效)

我的代码在这里:

    def primer(x):
        if x < 2:
            return False

        elif x > 2:
            for n in range(2, x):
                if x % n == 0:
                    return False
                else:
                    return True
        else: 
            return True

以及在这里工作的代码:

    def is_prime(x):
        if x < 2:
            return False

        elif x > 2:
            n = 2
            while n < x:
                if x % n == 0:
                    return False
                n += 1
            else:
                return True
        else:
            return True

感谢您花时间阅读本文,祝您度过愉快的一天。

1 个答案:

答案 0 :(得分:2)

在尝试所有可能的除数之前,如果发现数字不可分,则立即返回True。删除else块:

def primer(x):
    if x < 2:
        return False

    else:
        for n in range(2, x):
            if x % n == 0:
                return False
            # else:
            #     return True
        return True