Ошибка отступа Python в операторе if / else - PullRequest
0 голосов
/ 26 января 2012

для следующего кода:

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 ]

6 голосов
/ 26 января 2012

У вас нет ничего в if стороне вашего оператора if. Ваш код переходит непосредственно к else, в то время как python ожидал блок (точнее, «отступный блок», о чем он говорит)

Как минимум, вам нужен блок с просто оператором 'pass', например:

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

В этом случае, однако, если вы действительно не хотите ничего делать на стороне if, тогда было бы яснее сделать это:

if not condition:
   # do all of your stuff here
2 голосов
/ 26 января 2012

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 - это заполнитель, который ничего не делает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...