缩进错误Python不起作用

时间:2017-11-29 07:33:23

标签: python indentation

我试图运行我的代码并且有一个

var result = customerObj.map(x => {
  return {
    id: x.id,
    name: x.data.name,
    status: x.data.status,
    contacts: x.data.contacts
  };
});

该代码应该检查一个网站的traceroute ...我知道...它不是很聪明,但它是我被告知要做的 我已经使用pep8检查了代码,并且eveything看起来很好......

File "C:/trcrt/trcrt.py", line 42
def checkInternet():
^
IndentationError: unexpected unindent

感谢您的帮助...... Btw pep8说 “模块级别导入不在文件顶部” 对于第12,13行

2 个答案:

答案 0 :(得分:0)

try块缺少其except子句。

try:
    pckt = IP(dst=dst)/ICMP()                        # Creates the 
                                                     # packet
    ip = [p for p in pckt.dst]                       # Gets the ip
    print "Tracerouting for  {0}  :  {1}".format(dst, ip[0])
    for ttl in range(1, 40):
        pckt = IP(ttl=ttl, dst=dst)/ICMP()
        timeBefore = time.time()
        reply = sr1(pckt, verbose=0, timeout=5)
        timeAfter = time.time()
        timeForReply = (timeAfter - timeBefore)*1000
        if reply is not None:
            print "{0} : {1} ; Time for reply: {2}".format(ttl, 
            reply.src, timeForReply)
            if reply.type == 0:
                print "Tracerout Completed"
                break
        else:
            print "{0} ... Request Time Out".format(ttl)

except:   # Here : Add the exception you wish to catch                                    
    pass  # handle this exception appropriately 

作为一般规则,不要使用catch all except子句,也不要pass使用已捕获的异常,它会让它无声地失败。

答案 1 :(得分:0)

如果这是您的完整代码,则需要检查两件事: 1)您是否混合了标签和空格?确保所有选项卡都转换为空格(我建议每个选项卡有4个空格)以进行缩进。一个好的IDE会为你做这件事。

2)try:中的trcrt(dst)除了阻止之外没有匹配。

PEP8顺便告诉你,函数名称应该是小写的: check_internet代替checkInternet,...

我会给你同样的建议,我给每个与我合作的人:开始使用一个标记PEP8和其他错误的IDE,周围有多个。它有助于发现这些错误,并培训您编写易于阅读的干净Python代码(如果您在其中添加注释),几年后也可以重新理解和理解。