找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 291|回复: 3

[求助] 函数入门请教

1

主题

1

帖子

1

积分

贫民

积分
1
chy154318421 发表于 2020-2-11 03:35:15 | 显示全部楼层 |阅读模式
本人小白,刚接触python,目前学习到函数章节,以下是我的问题,希望大佬能提点一二:#判断质数
def isit(num):
    isdata = True
    if num==0 or num==1:
        return False
    elif num==2 or num==3:
        return True
    elif num>3:

        for i in range(2,num):
            if num%i==0:
                return False
                break
            else:
                return True

当print(isit(15))时
返回为True我不知道我是哪里出了错,希望得到大佬帮助,感激不尽!
回复

使用道具 举报

0

主题

8

帖子

8

积分

贫民

积分
8
温酒斩化腾 发表于 2020-2-13 02:26:39 | 显示全部楼层
你仔细想想,当num为15时,第一次执行for...in...循环,i == 2,num ==15,那么num%i == 1,不符合if的条件num%i == 0,因此执行else,即返回True
回复 支持 反对

使用道具 举报

0

主题

8

帖子

8

积分

贫民

积分
8
温酒斩化腾 发表于 2020-2-13 12:21:46 | 显示全部楼层
当调用isit(15)时,传入的参数是num = 15,前面两个if和elif都不符合条件,所以直接跳过,执行elif num>3:后面的内容,进入for...in循环,第一次循环,i=2,那么num % 2相当于15%2 == 1不符合if 的条件num%i == 0,所以执行else后面的内容,于是返回True
回复 支持 反对

使用道具 举报

0

主题

3

帖子

3

积分

贫民

积分
3
小龙在线 发表于 2020-2-15 21:32:30 | 显示全部楼层
你是不是想看输入的数是不是质数啊,那你该把返回的结果都放入一个列表里,然后再判断
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表