python:请问一下这个代码哪里是错的呢

我觉得我已经按照题意写了但是仍然不对😿
输入is_prime(100)时还是True

img

判断输入整数是否为质数

def is_prime(num):
    if num==1 or num==2:
        return True
    for i in range(2,num):
        if num%i==0:
            return False
    return True
print(is_prime(7))
print(is_prime(100))
print(is_prime(2))
print(is_prime(1))
print(is_prime(20))
print(is_prime(23))
print(is_prime(29))
print(is_prime(30))

img

因为100 进入到if判断里面直接return了,后面for没有执行
把for循环语句和if换个位置

你这是个整数输进去都是True。。。

def is_prime(num):
    if num == 1:
        return False
    if num == 2:
        return True
    for i in range(2, int(num**0.5 + 1), 2):
        if num % i == 0:
            return False
    return True