关于Python的return问题

判断质数的小问题:

from math import sqrt
def is_prime(a):
    try:
        n=eval(a)
    
        if type(n)!=type(1):
            print('请确认您输入的是整数!')#保证输入是整数
        else:
            if n==1:
                return False
            for i in range(2,int(sqrt(n))+1):
                if n%i==0:
                    return False
            return True         
    except:
        print('请确认您输入的是数字!')#保证输入是数字

while True:
    a=input('请输入一个整数,键入“q”退出:')
    if a=='q':
            break
    else:
        print(is_prime(a))
 

请问大佬们:except上面那两行,return False和return True这里有点疑惑: 如果输入是9,那么肯定执行return False,但是接下来应该顺序执行return True才对啊,那么结果应该是先出现False后出现True。但是为啥结果只有一个False呢,是什么使得程序跳过了这个return True的执行呢,按理说return True是独立于最里面那个小循环的啊。

 

执行完return  函数就退出了  后面的语句全部不执行

大佬,也就是说一个函数只能执行到第一个有效的return吗

 

对的  函数执行到return就会退出函数  所以只会执行一个有效的return  如果你函数代码里面不写return  就会默认return None