2015-10-05 89 views
-4

有人可以向我解釋爲什麼這個程序不會打印數字和正確執行?我試過使用繼續和休息,但似乎沒有任何工作。嵌套如果和其他語句循環

進入這裏

n=60 
m=2 
for int in range(60): 
     if n/m==int: 
       m=2 
       n=n+1 
     else: 
       while m<=n and n/m==float: 
         m=m+1 
         if n==m: 
           print(n) 
+1

你正在影響內置的'int'和'float',請改變你的循環變量BLE。另外,你永遠不會定義'float'。 –

+1

有很多問題,其中一個是你正在檢查'n/m'是否等於永遠不會是真的類型。 –

+2

你究竟在努力實現什麼,因爲我無法遵循代碼中的任何邏輯? –

回答

0

下面的代碼是與一些改變你的代碼,上面的評論者提到:

n = 60 
m = 2 
for value in range(60): # Don't use the word `int`! 
    if n/m == value: 
     m = 2 
     n += 1 
    else: 
     while m <= n and n/m == something: # `something` is undefined! 
      m += 1 
      if n == m: 
       print(n) 

的主要問題(在這一點上)是變量something(那你叫float)不存在。

0

不知道你在做什麼。但要使其在語法上正確。

  1. 對於變量名不使用內置的類型,如int
  2. 要檢查的類型,你應該使用isinstance
  3. 如果蟒蛇2使用從__future__ import division

代碼:

from __future__ import division 
    n=60 
    m=2 
    for i in range(60): 
      if isinstance(n/m,int): 
        m=2 
        n=n+1 
      else: 
        while m<=n and isinstance(n/m,float): 
          m=m+1 
          if n==m: 
            print(n)