[Python]デコレータで作る回文判定プログラム

1.回文判定プログラム

初めから読んでも最後から読んでも同じ読みをする文章の回文判定プログラムを作ります。デコレータの指定先である高階関数では渡された文字列と反転した文字列を表示しています。

2.コード

def showargs(func):
    def inner(text):
        print(f"StateMent:{text}")
        print(f"ReversedStateMent:{text[::-1]}")
        return func(text)
    return inner

@showargs
def palindrone(text):
    t_or_f = text == text[::-1]
    result = "O" if t_or_f else "X"
    print(f"RESULT: {result} ")

text_list = ["text", "mom", "dad", "しんぶんし", "トマト", "adam"]

for text in text_list:
    palindrone(text)
    print("-" * 10)

3.実行結果

StateMent:text
ReversedStateMent:txet
RESULT: X 
----------
StateMent:mom
ReversedStateMent:mom
RESULT: O 
----------
StateMent:dad
ReversedStateMent:dad
RESULT: O 
----------
StateMent:しんぶんし
ReversedStateMent:しんぶんし
RESULT: O 
----------
StateMent:トマト
ReversedStateMent:トマト
RESULT: O 
----------
StateMent:adam
ReversedStateMent:mada
RESULT: X 
----------


この記事が気に入ったらサポートをしてみませんか?