gongkeguo
世由心生
采纳率25%
2021-01-30 10:49 阅读 4

关于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是独立于最里面那个小循环的啊。

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • Miku_wx Miku丨无形 2021-01-30 10:53

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

    点赞 1 评论 复制链接分享
  • gongkeguo 世由心生 2021-01-30 11:11

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

     

    点赞 评论 复制链接分享
  • Miku_wx Miku丨无形 2021-01-30 11:37

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

    点赞 评论 复制链接分享

相关推荐