2012-12-11 84 views
0

我在python中编写作业。我写了几个函数,一切都很好。我试图添加第三个函数,python给我的消息“期望一个缩进块”。我知道混合标签和空格存在问题。我尝试了它们,但没有什么区别。尝试更改制表符间距,在不同的PC上重写整个代码。我无能为力......可能是什么问题?不明原因的python缩进错误

def xor_bytes(byte1, byte2): 
    xor = "" 
    for i in range(len(byte1)): 
     if byte1[i] == byte2[i]: 
      xor = xor + "0" 
     else: 
      xor = xor + "1" 
    return xor 

def verify_checksum(datagram): 
    checksum = '00000000' 
    total = False 
    for i in range((len(datagram)/8)-1): 
     checksum = xor_bytes(checksum,datagram[8*(i):8*(i+1)]) 
     if checksum == datagram[len(datagram)-8 : len(datagram)]: 
      total = True 
    return total 
def check_datagram(datagram,src_comp,dst_app): 
+2

您是否为第三个功能添加了正文? –

回答

1

你可能仍然混合标签和空格,不这样做。

运行python -tt yourscript.py检测其中的缩进变得不一致。调整编辑器以仅使用空格(将选项卡扩展到空格,使用空格缩进等)。

注意,你需要指定一个新功能,否则你会得到同样的错误:

>>> def foo(bar): 
... 
    File "<stdin>", line 2 

    ^
IndentationError: expected an indented block 
0

有没有在您的示例中的最后一行后什么?

def check_datagram(datagram,src_comp,dst_app): 

如果不是:Python要求代码块不是“空的”。我会将其更改为:

def check_datagram(datagram,src_comp,dst_app): 
    pass