我正在用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):
答案 0 :(得分:1)
您可能仍然混合制表符和空格,不要这样做。
运行python -tt yourscript.py
以检测 缩进变得不一致的地方。将编辑器调整为仅使用空格(将制表符展开到空格,使用空格进行缩进等)。
请注意,您确实需要为新功能指定 body ,否则您将收到同样的错误:
>>> def foo(bar):
...
File "<stdin>", line 2
^
IndentationError: expected an indented block
答案 1 :(得分:0)
你的例子中最后一行之后有什么东西吗?
def check_datagram(datagram,src_comp,dst_app):
如果不是:Python要求代码块不是“空”。我会改为:
def check_datagram(datagram,src_comp,dst_app):
pass