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