Python缩进问题(错误:预期缩进块)

时间:2015-10-15 10:04:59

标签: python numpy

我的代码存在问题:

#!/usr/bin/python

import numpy as np

#Hit and  mess method

A=0 #Integral left limit
B=1 #Integral right limit
C=1.0 #Maximum function value in interval [a,b]
N=100000 #Number of experiments
L=[10**x for x in range(7)]  #List of powers of ten (1,10,100,...)

def F(X): #Function to integrate
    return np.sqrt(1-(X**2))

for M in L: 
    NA=0 #Number count of hits
    for J in range(M):
        U=np.random.rand()
        V=np.random.rand()
        X=A+(B-A)*U
        if F(X) > C*V:
            NA=NA+1         
    P=NA/float(M)  #Probability
    I=C*(B-A)*P    #Integral value
    STD=np.sqrt(P*(1-P)/M)*C*(B-A)
    print M,NA,P,I,STD

错误是:

文件" HIT.py",第19行     U = np.random.rand()     ^ IndentationError:预期缩进块

谢谢!

1 个答案:

答案 0 :(得分:1)

您正在混合制表符和空格。您的代码使用U=np.random.rand()上方2行中的标签,但缩进由U=np.random.rand()的空格提供。您的代码中还有许多其他混合空格和制表符示例。

对于一些行,代码看起来像这样(\ t代表一个标签):

for M in L: 
\tNA=0 #Number count of hits
\tfor J in range(M):
        U=np.random.rand()
    \tV=np.random.rand()
    \tX=A+(B-A)*U

如果可能,您应该只使用空格进行缩进(在维护旧代码时可能无法进行缩进)。您可以在PEP 8中了解此问题和其他样式问题。