Python 如何让它贯穿我的整个系列?

Python 如何让它贯穿我的整个系列?,python,python-3.x,Python,Python 3.x,当我为给定的值检查n时,它只检查2,然后决定它是真还是假,而不检查范围的其余部分。不确定如何使其检查范围的其余部分。这是因为您在if-else块中使用了返回。您可能希望通过打印语句来更改return语句,以指示它是否为素数 如果希望在所有元素都是类素数时返回True,或者在至少一个元素不是类素数时返回False,请执行以下操作: def isprimelike(n): for a in range(2,n-1): if pow(a,n,n) == a%n:

当我为给定的值检查n时,它只检查2,然后决定它是真还是假,而不检查范围的其余部分。不确定如何使其检查范围的其余部分。

这是因为您在if-else块中使用了返回。您可能希望通过打印语句来更改return语句,以指示它是否为素数

如果希望在所有元素都是类素数时返回True,或者在至少一个元素不是类素数时返回False,请执行以下操作:

def isprimelike(n):
    for a in range(2,n-1):
        if pow(a,n,n) == a%n:
            return True
        else:
            return False

print语句只是为了显示某些内容,但并不相关。

我会尝试制作一个列表,并允许for循环将范围的结果附加到列表中,然后返回整个列表,这样您就可以访问所有结果

编辑:完全没有抓住你问题的重点。这是编辑

def isprimelike(n):
    for a in range(2,n-1):
        if pow(a,n,n) != a%n:
            print('One element is false')
            return False
    return True

问题是当我将其更改为“打印”时,它会为范围内的每个值打印。有没有一种方法可以在不打印每个值的情况下检查整个范围。我的打印建议只是为了让你看到一些东西,因为我不知道你想要实现什么。基本上,当条件为真或假时,你希望发生什么。我希望它在整个范围内运行,如果它在整个范围内为真,告诉我它为真。如果它在整个范围内运行并且为false,请告诉我它为false。关于此更改,需要知道的最重要的一点是return始终退出函数并返回值。@Ignacio所做的是移动返回,这样它要么返回并退出一个假值,如果它找到一个,要么如果它没有找到一个假值,它返回真值。
import sys
def isprimelike(n):
    resultlist = []
    for a in range(2,int(n)-1):
        if pow(a,int(n),int(n)) == a%int(n):
            result.append(True)
        else:
            result.append(False)
    return resultlist

n = sys.argv[1]
resultlist = isprimelike(n)
if True in resultlist:
    if False in resultlist:
        print('List contains both True and False')
        sys.exit(1)
    else:
        print('List is all True')
        sys.exit(1)
if False in resultlist:
    if True in resultlist:
        print('List contains both True and False')
    else:
        print('List is all False')