否则– IndentationError:应为缩进块

时间:2018-09-02 19:10:08

标签: python if-statement indentation

我有以下代码块

   def simple_get(url):
    try:
        page_response = requests.get(page_link, timeout=5)
        if page_response.status_code == 200:
        # extract
        else:
            print(page_response.status_code)
            # notify, try again
    except requests.Timeout as e:
        print("It is time to timeout")
        print(str(e))
    except # other exception

运行时,出现以下错误

File "<ipython-input-16-6291efcb97a0>", line 11
else:
   ^
IndentationError: expected an indented block

我不明白为什么我已经缩进“ else”语句后笔记本仍然要求缩进

3 个答案:

答案 0 :(得分:1)

问题是您没有告诉程序在满足第一个条件时(if语句)该怎么做。如果不确定该怎么办,可以在“ pass”中使用python build。

if page_response.status_code == 200:
    pass
else:
    print(page_response.status_code)

答案 1 :(得分:0)

这是Python中最基本的概念,用于开始编码:
#开头的行在代码块中被忽略。

此处的代码

    if page_response.status_code == 200:
    # extract
    else:
        print(page_response.status_code)

直译为

    if page_response.status_code == 200:
    else:
        print(page_response.status_code)

因此产生IndentationError

您可以通过在pass语句中至少放置if命令或任何工作行来解决此问题。

以前已经问过类似的问题:
Python: Expected an indented block

答案 2 :(得分:0)

import requests
from bs4 import BeautifulSoup
def simple_get(url):
    try:
        page_response = requests.get(url, timeout=5)
        if page_response.status_code == 200:
            print(page_response.status_code)
            pass
            # extract
        else:
            print(page_response.status_code)
            # notify, try again
    except requests.Timeout as e:

        print("It is time to timeout")
        print(str(e))
simple_get("https://www.nytimes.com/")