Pythonでの括弧のチェッカーと対処方法


  1. スタックを使用する方法: 括弧のチェックには、スタックというデータ構造を使用する方法があります。以下は、この方法のコード例です。
def check_parentheses(string):
    stack = []
    opening_brackets = ['(', '[', '{']
    closing_brackets = [')', ']', '}']

    for char in string:
        if char in opening_brackets:
            stack.append(char)
        elif char in closing_brackets:
            if not stack:
                return False
            if opening_brackets.index(stack.pop()) != closing_brackets.index(char):
                return False

    return not stack
# 使用例
code = "def foo():\n    print('Hello, World!')"
if check_parentheses(code):
    print("括弧のチェック: OK")
else:
    print("括弧のチェック: エラー")
  1. 正規表現を使用する方法: Pythonのreモジュールを使用して、正規表現を使って括弧のチェックを行うこともできます。以下は、この方法のコード例です。
import re
def check_parentheses(string):
    opening_brackets = r'\(|\[|\{'
    closing_brackets = r'\)|\]|\}'
    pattern = opening_brackets + '|' + closing_brackets

    while re.search(pattern, string):
        string = re.sub(pattern, '', string)

    return not string
# 使用例
code = "def foo():\n    print('Hello, World!')"
if check_parentheses(code):
    print("括弧のチェック: OK")
else:
    print("括弧のチェック: エラー")

これらは、Pythonで括弧のチェックを行うための一般的な方法の一部です。他にも、再帰を使用した方法やスタックを使わずに処理する方法など、さまざまなアプローチがあります。選択した方法は、コードの複雑さやパフォーマンスの要件によって異なる場合があります。

括弧のチェックは、コーディングにおける一般的な文法エラーの一つです。正しく括弧を使うことで、コードの可読性を向上させ、予期しないバグを防ぐことができます。