不明白这个为什么是true

不太懂这题目为什么是true,python是和c,c++不同吗,那个应该是0/1

img


img

一个题发那么多遍干啥
你为什么不信编译器而要信教材呢
教材会印错,编译器不会错的

缩进不对,然后返回True那里True写错了,导致程序报错,然后调用函数isPrime()那里函数名多写了个s。

修改如下:

参考链接:


质数_百度百科 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 https://baike.baidu.com/item/%E8%B4%A8%E6%95%B0/263515


def isPrime(n):
    if n<=1:# 小于2的判定为不是素数,返回False
        return False
    # https://blog.csdn.net/weixin_44414948/article/details/111185107
    # https://baike.baidu.com/item/%E8%B4%A8%E6%95%B0/263515
    # 大于等于2的数,使用2到n-1区间的数来整除n
    # 如果可以整除,则不是素数,返回False
    # 这里2是特例,不进入循环,直接到下面返回True
    for i in range(2,n):
        #print("n=",n,",i=",i)
        if n%i==0:
            return False
 # 如果2到n-1区间所有的数,都不能整除n
 # 则n是素数,返回True
    return True

n =eval(input(""))
#调用isPrime()函数,输出输入的数n是否是素数
print(isPrime(n))

img

True, 首字母要大写。最好与if对齐。for及其代码块,统一缩进4个空格,是isPrime中的一部分。整个代码的缩进关系与你图中的保持一致。
47是质数。isPrime方法里面,循环它的每一个因子,有因子能整除它,返回False不是质数,否则等循环结束,返回True是质数。

true是个字符串,返回的就是字符串。将true修改为True试下。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^