Python似乎永远不会启动循环

时间:2015-07-29 23:21:08

标签: python

当我在终端中运行时,我在打印后30秒内看不到任何东西:

killed 9

第一次之后,我将print(i)添加到第23行以查看正在进行的操作,但它甚至从未打印过第一个数字。这里有一些我不明白的事情。将for循环更改为非常小的数字后,它可以正常工作。我无法改变循环的范围,因为这些是我需要查看的确切数字。我该怎么办?

  6 def isPandigital(digits):                                                       
  7     sortedDigits = sorted(digits)                                               
  8     numDigits = len(sortedDigits)                                               
  9                                                                                 
 10     if len(set(sortedDigits)) != numDigits:                                     
 11         return False                                                            
 12                                                                                 
 13     for i in range(1, numDigits + 1):                                           
 14         if i != sortedDigits[i - 1]:                                            
 15             return False                                                        
 16                                                                                 
 17     return True                                                                 
 18                                                                                 
 19 primes = [2, 3, 5, 7, 11, 13, 17]                                               
 20 total = 0                                                                       
 21                                                                                 
 22 for i in range(1234567890, 9876543210 + 1):                                     
 23     print(i)                                                                    
 24     digits = [int(dig) for dig in str(i)]                                       
 25     numDigits = 10                                                              
 26                                                                                 
 27     if isPandigital(digits):                                                    
 28         for i in range(numDigits - 3):                                          
 29             newNum = int(''.join(map(str, digits[i:i + 3])))                    
 30             if not (newNum % primes[i] == 0):                                   
 31                 break                                                           
 32         else:                                                                   
 33             total += i

1 个答案:

答案 0 :(得分:2)

尝试使用生成器(xrange)而不是列表(范围),即

app.get('/logout', function(req , res){
   ref.unauth();
   res.redirect('/');
});