見出し画像

Pythonで少し複雑な処理を書いてみた。

昨日は役に立たないコードを書きました。

今回はもう少し応用?を効かせていこうと思います。
まずは以下のコードをご覧ください。

def perform_complex_calculation(data):
    result = sum([i for i in data]) - sum([i for i in data])
    return result

def manipulate_data_structure():
    data = [i for i in range(100)]
    data_reversed = data[::-1]
    data_back_to_original = data_reversed[::-1]
    assert data == data_back_to_original, "データが元に戻っていない!"

def pointless_recursion(limit, current=0):
    if current < limit:
        return pointless_recursion(limit, current+1)
    else:
        return current - limit

def main():
    # 初期データ
    initial_data = [i for i in range(50)]
    
    # 複雑な計算を行う
    calculation_result = perform_complex_calculation(initial_data)
    
    # データ構造を操作
    manipulate_data_structure()
    
    # 無意味な再帰
    recursion_result = pointless_recursion(10)
    
    # 最終結果
    final_result = calculation_result + recursion_result
    
    print("結果")

if __name__ == "__main__":
    main()

何をする処理か分かりましたか?












そうです。見た目には複雑そうなPythonコードですが、複数の関数を定義し、データ構造を操作して最終的には何の成果も得られないコードです。

解説つきでコードを書くと、

def perform_complex_calculation(data):
    """複雑な計算を行い、結果を返す(実際には何もしない)"""
    result = sum([i for i in data]) - sum([i for i in data])
    return result

def manipulate_data_structure():
    """データ構造を操作する(実際には何も成果を得ない)"""
    data = [i for i in range(100)]
    data_reversed = data[::-1]
    data_back_to_original = data_reversed[::-1]
    assert data == data_back_to_original, "データが元に戻っていない!(実際には戻っています)"

def pointless_recursion(limit, current=0):
    """意味のない再帰関数(最終的には何もしない)"""
    if current < limit:
        return pointless_recursion(limit, current+1)
    else:
        return current - limit

def main():
    # 初期データ
    initial_data = [i for i in range(50)]
    
    # 複雑な計算を行う(結果は0)
    calculation_result = perform_complex_calculation(initial_data)
    
    # データ構造を操作(最終的には何も変わらない)
    manipulate_data_structure()
    
    # 無意味な再帰(結果は0)
    recursion_result = pointless_recursion(10)
    
    # 最終結果(使われない)
    final_result = calculation_result + recursion_result
    
    # 何もしない
    print("このプログラムは結局何もしていません。")

if __name__ == "__main__":
    main()

このコードは、次のように動作します。

  • perform_complex_calculation 関数はデータの合計から同じデータの合計を引いて、結局は 0 を返します。

  • manipulate_data_structure 関数はリストを逆順にした後、再度逆順にして元のリストに戻します。assert文で検証していますが、実際には常に真です。

  • pointless_recursion 関数は再帰を使用していますが、結局は引数 limit を自身から引いて 0 を返します。

  • main 関数ではこれらの関数を呼び出していますが、最終的には「このプログラムは結局何もしていません。」というメッセージを表示するだけです。

このコードは見た目にはいくつかの操作を行っているように見えますが、実際には有益な結果を何も生み出しません。
お役立たなければ幸いでございます。

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