Python 缩进错误?
Python Indentation bug?
我有这个代码:
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)
当然你不能运行不知道如何附上我的class定义。
但是当我 运行 时的问题是最后一条语句就像在上面的 for 循环中一样。 print avg[i]
应执行 timeSteps
次,最后 print 'len avg[] =', len(avg)
应执行一次。
这不会发生;输出通过 timeSteps
.
一遍又一遍地显示 print avg[i]
、print 'len avg[] =', len(avg)
您混用了制表符和 space。您的大部分代码都缩进了 space,但有几行有制表符,包括似乎缩进太多的那一行。 Python 像记事本一样对待制表符,足够 spaces 达到下一个 8-space 缩进级别。 运行 带有 -tt
选项的代码可以让 Python 通知你这样的事情,在你的编辑器中打开 "show whitespace" 如果它有这个选项,然后更改这些选项卡至 spaces.
我有这个代码:
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)
当然你不能运行不知道如何附上我的class定义。
但是当我 运行 时的问题是最后一条语句就像在上面的 for 循环中一样。 print avg[i]
应执行 timeSteps
次,最后 print 'len avg[] =', len(avg)
应执行一次。
这不会发生;输出通过 timeSteps
.
print avg[i]
、print 'len avg[] =', len(avg)
您混用了制表符和 space。您的大部分代码都缩进了 space,但有几行有制表符,包括似乎缩进太多的那一行。 Python 像记事本一样对待制表符,足够 spaces 达到下一个 8-space 缩进级别。 运行 带有 -tt
选项的代码可以让 Python 通知你这样的事情,在你的编辑器中打开 "show whitespace" 如果它有这个选项,然后更改这些选项卡至 spaces.