Problem:
縦 8、横 8 のマスからなる図 1 のような平面があります。   □| □| □| □| □| □| □| □   ---|---|---|---|---|---|---|---   □| □| □| □| □| □| □| □   □| □| □| □| □| □| □| □   □| □| □| □| □| □| □| □   □| □| □| □| □| □| □| □   □| □| □| □| □| □| □| □   □| □| □| □| □| □| □| □   □| □| □| □| □| □| □| □      図１   ---       この平面上に、以下の A から G の図形のどれかが一つだけ置かれています。  | A   ---   ■| ■| |   ---|---|---|---   ■| ■| |   | | |   | | |   | B   ---   | ■| |   ---|---|---|---   | ■| |   | ■| |   | ■| |   | C   ---   ■| ■| ■| ■   ---|---|---|---   | | |   | | |   | | |      | D   ---   | ■| |   ---|---|---|---   ■| ■| |   ■| | |   | | |   | E   ---   ■| ■| |   ---|---|---|---   | ■| ■|   | | |   | | |   | F   ---   ■| | |   ---|---|---|---   ■| ■| |   | ■| |   | | |   | G   ---   | ■| ■|   ---|---|---|---   ■| ■| |   | | |   | | |       たとえば、次の図 2 の例では E の図形が置かれています。   | □| □| □| □| □| □| □| □   ---|---|---|---|---|---|---|---   □| □| □| □| □| □| □| □   □| ■| ■| □| □| □| □| □   □| □| ■| ■| □| □| □| □   □| □| □| □| □| □| □| □   □| □| □| □| □| □| □| □   □| □| □| □| □| □| □| □   □| □| □| □| □| □| □| □      図２   ---       平面の中で図形が占めているマスを 1、占めていないマスを 0 で表現した数字の列を読み込んで、置かれている図形の種類（A〜G）を出力するプログラムを作成してください。  ただし、ひとつの平面に置かれている図形は必ず１つで、複数の図形が置かれていることはありません。また、A〜G で表される図形以外のものが置かれていることはありません。

Incorrect submission (verdict: Wrong Answer):
import sys


def analyze_figure(data):
    
    for i, row in enumerate(data):
        if '1' not in row:
            continue
        dot = row.count('1')
        if dot == 1:  # B, D, F???????????????
            x = row.index('1')
            try:
                if data[i+2][x] == '1':
                    return 'B'
                elif data[i+1][x+1] == '1':
                    return 'F'
                else:
                    return 'D'
            except IndexError:
                return None
        else:  # A, C, E, G???????????????
            x = row.index('1')
            try:
                if data[i][x+2] == '1':
                    return 'C'
                elif data[i+1][x] == '0':
                    return 'E'
                elif data[i+1][x+1] == '1':
                    return 'A'
                else:
                    return 'G'
            except IndexError:
                return None


if __name__ == '__main__':
    data = []
    for line in sys.stdin:
        if '0' in line or '1' in line:
            data.append(line.strip())
            continue
        # data.append('00000000')
        # data.append('00000000')
        # data.append('00000000')
        # data.append('00000000')
        # data.append('00000000')
        # data.append('00000000')
        # data.append('00000000')
        # data.append('00000000')

        # ???????????????
        ans = analyze_figure(data)

        
        if ans:
            print(ans)
        data = []

Fixed, accepted submission:
import sys


def analyze_figure(data):
    
    for i, row in enumerate(data):
        if '1' not in row:
            continue
        dot = row.count('1')
        if dot == 1:  # B, D, F???????????????
            x = row.index('1')
            try:
                if data[i+2][x] == '1':
                    return 'B'
                elif data[i+1][x+1] == '1':
                    return 'F'
                else:
                    return 'D'
            except IndexError:
                return None
        else:  # A, C, E, G???????????????
            x = row.index('1')
            try:
                if data[i][x+2] == '1':
                    return 'C'
                elif data[i+1][x] == '0':
                    return 'E'
                elif data[i+1][x+1] == '1':
                    return 'A'
                else:
                    return 'G'
            except IndexError:
                return None


if __name__ == '__main__':
    data = []
    for line in sys.stdin:
        t = line.strip()
        if t:
            t = '00' + t + '00'
            data.append(t)
        # data.append('00000000')
        # data.append('00000000')
        # data.append('00000000')
        # data.append('00000000')
        # data.append('00000000')
        # data.append('00000000')
        # data.append('00000000')
        # data.append('00000000')


        # ???????????????
        if len(data) == 8:
            data.append('000000000000')
            data.append('000000000000')
            ans = analyze_figure(data)

            
            if ans:
                print(ans)
            data = []