0

我正在用python编写家庭作业。我写了几个函数,一切都很好。我试图添加第三个函数,python 给了我“预期有缩进块”的消息。我知道混合制表符和空格存在问题。我尝试了它们,但没有任何区别。尝试更改制表符间距,在另一台 PC 上重写整个代码。我一无所知...可能是什么问题?

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):
4

2 回答 2

1

您可能仍然混合制表符和空格,不要那样做。

运行python -tt yourscript.py以检测缩进变得不一致的位置。调整您的编辑器以仅使用空格(将制表符扩展到空格,使用空格进行缩进等)。

请注意,您确实需要为新函数指定一个主体,否则您将收到相同的错误:

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

    ^
IndentationError: expected an indented block
于 2012-12-11T19:48:17.027 回答
0

在你的例子中最后一行之后有什么吗?

def check_datagram(datagram,src_comp,dst_app):

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

def check_datagram(datagram,src_comp,dst_app):
    pass
于 2013-03-07T18:42:49.873 回答