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

keliang 发布于 2011/10/29 00:44
阅读 213
收藏 0

本人初学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)

 

加载中
0
puras
puras

我在我的机器上,执行到s = PrimeND()这块是没有错误的。我用的是Python2.7.2,

但你的错误提示,应该是类型转换的问题,查查这块吧。

0
puras
puras
而且,你写的程序,好像有问题,如果你是想判断你输入的数是个什么 类型的数的话。
0
骠骑将军
骠骑将军
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'
>>> 

0
李渊
李渊

PrimeND方法连个返回值都没有。

所以看不懂:= PrimeND()  

0
oschina的ID
oschina的ID
没有进行类型转换,需要 n = int(n)
0
FreeZ
FreeZ

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

没有进行类型转换,需要 n = int(n)
+1
0
FreeZ
FreeZ
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()

语法对了 但求素数的算法不对吧

0
yangjie6020
yangjie6020
算法不对的
返回顶部
顶部