如果for循环中的Else语句不起作用

时间:2014-04-01 11:37:21

标签: python

使用以下代码检查某些条件

 for myarg in myargs:
    if myarg=='heading.png':
       t = find(dirpath + '\\' + myarg)
      t1= capture(t.getX() - 50, t.getY() + 50, t.getW(), t.getH())
      click(t1)

    else
    print "else inside-----------"

myargs conatians heading.png,name.png etc

执行上述代码时,

是gettign erros IndentationError: unindent does not match any outer indentation level

3 个答案:

答案 0 :(得分:8)

修复缩进,在else之后错过了冒号,并且下面的print语句没有缩进。

for myarg in myargs:
    if myarg=='heading.png':
        t = find(dirpath + '\\' + myarg)
        t1= capture(t.getX() - 50, t.getY() + 50, t.getW(), t.getH())
        click(t1)

    else:
        print "else inside-----------"

我建议使用pylint或类似的语法检查程序来避免这样的问题。

答案 1 :(得分:0)

您可以轻松地从错误中发现缩进错误 将您的功能更改为

for myarg in myargs:
    if myarg=='heading.png':
        t = find(dirpath + '\\' + myarg)
        t1= capture(t.getX() - 50, t.getY() + 50, t.getW(), t.getH())
        click(t1)
    else:      # here you must use colon
        print "else inside-----------"

答案 2 :(得分:0)

简单地说,Python中的缩进与{}C++等其他语言中的C#相当。

使用文本编辑器编写脚本,您可以 使用 丰富的编辑器编写脚本。

   for myarg in myargs:
        if myarg=='heading.png':
              t = find(dirpath + '\\' + myarg)
              t1= capture(t.getX() - 50, t.getY() + 50, t.getW(), t.getH())
              click(t1)
       else:
              print "else inside-----------"