2017-07-30 62 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是浮點,則轉換將截斷爲零。如果參數超出整數範圍,則該函數會返回一個長對象。