python编程问题
importmath,sysnumber=raw_input("inputthenumber:")number=int(number)foriinrange(2,math...
import math,sys
number = raw_input("input the number:")
number = int(number)
for i in range(2,math.sqrt(number)):
if(number%i==0):
print 'false'
sys.exit()
print 'true'
请问这个运行时出现这种错误;
Traceback (most recent call last):
File "D:\python程序文件\素数3.py", line 4, in <module>
for i in range(2,math.sqrt(number)):
TypeError: range() integer end argument expected, got float.
怎么回事啊,初学python,不太懂。。。。
n= raw_input("input the number:")
n= int(n)
if(n<=1):
print 'true'
for i in range(2,int(n)):
if n%i!=0:
print 'true'
else:
print 'false'
写了一个程序,判断素数,但不对,能帮我改一下么 展开
number = raw_input("input the number:")
number = int(number)
for i in range(2,math.sqrt(number)):
if(number%i==0):
print 'false'
sys.exit()
print 'true'
请问这个运行时出现这种错误;
Traceback (most recent call last):
File "D:\python程序文件\素数3.py", line 4, in <module>
for i in range(2,math.sqrt(number)):
TypeError: range() integer end argument expected, got float.
怎么回事啊,初学python,不太懂。。。。
n= raw_input("input the number:")
n= int(n)
if(n<=1):
print 'true'
for i in range(2,int(n)):
if n%i!=0:
print 'true'
else:
print 'false'
写了一个程序,判断素数,但不对,能帮我改一下么 展开
3个回答
展开全部
错误在于,range的2个输入都必须为整型,上述代码里“math.sqrt(number)”的实际值为2.449489742783178,为浮点型,你可以在那句前面输出下该值看一下。所以会说“range() integer end argument expected, got float.”,range期待整型参数,却得到个浮点。将math.sqrt(number)外面加个强制转型,写为:“int(math.sqrt(number))”,就可以了。
追问
n= raw_input("input the number:")
n= int(n)
if(n<=1):
print 'true'
for i in range(2,int(n)):
if n%i!=0:
print 'true'
else:
print 'false'
写了一个程序,判断素数,但不对,能帮我改一下么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
"TyprError: range() integer end argument expected, got float."
Because math.sqrt(num) returns a float number, but what function range() needs is a int, so you may use
for i in range(2, int(math.sqrt(number))):
instead.
追问
n= raw_input("input the number:")
n= int(n)
if(n<=1):
print 'true'
for i in range(2,int(n)):
if n%i!=0:
print 'true'
else:
print 'false'
写了一个程序,判断素数,但不对,能帮我改一下么
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
math.sqrt(number)返回的是float类型,你强制转换一下
追问
n= raw_input("input the number:")
n= int(n)
if(n<=1):
print 'true'
for i in range(2,int(n)):
if n%i!=0:
print 'true'
else:
print 'false'
写了一个程序,判断素数,但不对,能帮我改一下么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询