Python缩进错误?

时间:2015-04-11 15:34:09

标签: python indentation

我有这段代码:

import numpy
import random
import pylab
from ps3b import *

def AvgWithDrug(numViruses, maxPop, maxBirthProb, clearProb, resistances, mutProb, numTrials, delay):

  viruses = []
  timeSteps = delay + 300
  print 'timeSteps = ', timeSteps

  for i in range(numViruses):
      viruses += [ResistantVirus(maxBirthProb, clearProb, resistances, mutProb)]

  avg = [0] * timeSteps
  print 'len avg[] =', len(avg)
  hola = []
  last = 0

  for j in range(numTrials):
      patient = TreatedPatient(viruses, maxPop)
      for i in range(timeSteps):
          if i == 150:
              patient.addPrescription('guttagonol')
          if i == 150 + delay:
              patient.addPrescription('grimpex')
          avg[i] += patient.update()

      new = avg[timeSteps - 1]
      print new - last
      hola += [new - last]
      last = new

  for i in range(timeSteps):
      avg[i] = avg[i]/ float(numTrials)
      print avg[i]


  print 'len avg[] =', len(avg)

当然,如果不知道如何附加我的类定义,就无法运行它。

但是当我运行它时的问题是最后一个语句就像它在上面的for循环中一样。 print avg[i]应执行timeSteps次,最后print 'len avg[] =', len(avg)执行一次。

它没有发生;输出通过print avg[i]一遍又一遍地向我显示print 'len avg[] =', len(avg)timeSteps

1 个答案:

答案 0 :(得分:4)

您混合了标签和空格。你的大部分代码都是用空格缩进的,但有几行有标签,包括似乎缩进太多的行。 Python会像Notepad那样处理一个标签,因为它有足够的空间来达到下一个8空间缩进级别。使用-tt选项运行代码,让Python通知您这样的事情,打开"显示空白"在编辑器中,如果它有该选项,并将这些选项卡更改为空格。