开发者社区> 问答> 正文

自己写的python脚本出错,请求帮助 400 请求报错 

本人初学python,看到有人写了一个素数的检测脚本,但是只定义了函数,所以想要补全它,结果写出的代码老是报错,改了好几次好像都不太对,所以希望有人能帮忙改正。 这个是我的代码:

n = input('请任意输入一个自然数')

def PrimeND():
        for i in range(2,n):
                if (n % i == 0):
                        print ('您输入的是合数')
                else:
                        print ('您输入的是素数')

s = PrimeND()                
if n == 0 and 1 :
        print ('0和1既不是素数也不是合数')
else:
        print (s)

 

展开
收起
kun坤 2020-05-29 15:52:23 496 0
1 条回答
写回答
取消 提交回答
  • 我在我的机器上,执行到s = PrimeND()这块是没有错误的。我用的是Python2.7.2, 但你的错误提示,应该是类型转换的问题,查查这块吧。######而且,你写的程序,好像有问题,如果你是想判断你输入的数是个什么 类型的数的话。

    ######

    IDLE 2.6.6      ==== No Subprocess ==== >>> def isprime(n): flag = 1 for i in xrange(2,int(n**0.5)+1): if n%i==0: flag = 0 break return flag==1 and 'prime' or 'Not prime'

    >>> isprime(3) 'prime' >>> isprime(45) 'Not prime' >>> isprime(50) 'Not prime' >>> isprime(2) 'prime' >>> isprime(17) 'prime' >>>

    ######PrimeND方法连个返回值都没有。 所以看不懂:= PrimeND()  ######没有进行类型转换,需要 n = int(n)######

    引用来自“oschina的ID”的答案

    没有进行类型转换,需要 n = int(n)
    +1 ######
    n = input('请任意输入一个自然数')
    n = int(n)
    
    def PrimeND():
            for i in range(2,n):
                    if (n % i == 0):
                            print ('您输入的是合数')
                    else:
                            print ('您输入的是素数')
    
    if n == 0 and 1 :
            print ('0和1既不是素数也不是合数')
    else:
            PrimeND()
    语法对了 但求素数的算法不对吧 ######算法不对的
    2020-05-29 15:52:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载