Python if/else 语句中的缩进错误

0 投票
2 回答
9369 浏览
提问于 2025-04-17 11:09

对于以下代码:

if __name__ == '__main__':
    min_version = (2,5)
    current_version = sys.version_info
if (current_version[0] > min_version[0] or
    current_version[0] == min_version[0] and
    current_version[1] >= min_version[1]):
else:
    print "Your python interpreter is too old. Please consider upgrading."
    config = ConfigParser.ConfigParser()
    config.read('.hg/settings.ini')
    user = config.get('user','name')
    password = config.get('user','password')
    resource_name = config.get('resource','name')
    server_url = config.get('jira','server')
    main()

我遇到了错误:

 else:
       ^
IndentationError: expected an indented block

2 个回答

2

if语句里面,必须有一个或多个要执行的操作,比如:

if (current_version[0] > min_version[0] or
    current_version[0] == min_version[0] and
    current_version[1] >= min_version[1]):
    pass # <-------------------------------------ADDED
else:
    # ...

pass语句是一个占位符,它本身不执行任何操作。

6

你的条件语句中的 if 部分没有任何内容。你的代码直接跳到了 else,而 Python 其实是期待你在 if 后面写一段代码(准确来说,是一个“缩进块”,这就是它想告诉你的)。

至少,你需要在 if 部分写一个包含 'pass' 的代码块,像这样:

if condition:
    pass
else:
    # do a lot of stuff here

不过,如果你真的不想在 if 部分做任何事情,那你可以这样写,会更清楚:

if not condition:
   # do all of your stuff here

撰写回答