2015-10-05 85 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)