世由心生
2021-01-30 10:49
采纳率: 83.3%
浏览 14
已结题

关于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丨无形 2021-01-30 10:53
    已采纳

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

    评论
    解决 无用
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题