2017-07-30 33 views
0

我完全不熟悉这整个编码演出,我只是想学习基础知识。目前,我试图创建一个表明输入是否为素数的主要函数。我检查过去的帖子,没有人像我一样以类似的方式处理问题,所以我没有先例。如果有人能告诉我为什么我的代码不能按需运行,我将非常感激。Python总理函数

def is_prime(x): 
    if x==0 or x==1: 
      return False 
    for n in range(2,x-1): 
     if "." not in str(int(x/n)): 
      return True 
     else: 
      return False 

我以为我可以只创建一个循环,以确定是否过去X任何数量的因素,如果没有那么这个数是素数,因为所有的输出会包含小数。

+1

只要使用模运算符''',不是那种憎恶。顺便说一句,'int'的结果总是一个整数,所以'str(int(whatever))'中不能有一个点。 –

+0

另外,你不能像那样早点返回'True'... –

回答

0

这不是一个很好的性能方法。
而且,在Python2中分割两个整数会给你一个整数,所以没有精确点。 在Python3中,你总是会得到一个精确的点,但是如果你把它转换回一个整数,那么你总是会失去它,就像在Python2中一样。

0

在您发布有关编程语言的基本工作方式的任何问题之前,请尝试在文档中找到答案。

据我了解,从这里:int

返回从一个数字或串x构建一个整数对象,如果没有给出参数返回0。如果x是一个数字,它可以是一个纯整数,一个长整数或一个浮点数。 如果x是浮点,则转换将截断为零。如果参数超出整数范围,则该函数会返回一个长对象。