退屈なことはPythonにやらせよう【3.11.1 コラッツ数列】

2024-11-26 by 内田裕之

こんにちは。

Pythonで業務効率化を図るうっちゃんです。

いまは「退屈なことはPythonにやらせよう」という本でPythonを学習しています。


退屈なことはPythonにやらせよう 第2版 ―ノンプログラマーにもできる自動化処理プログラミング

今回は演習プロジェクト3.11.1 コラッツ数列の解答です。

この記事は内容に広告・プロモーションを含みます。

■目次

  1. 演習内容
  2. 解答

演習内容

アイディアの画像

numberというパラメータをひとつ持つcollatz()という名前の関数を書きなさい。

numberが偶数なら、collatz()はnumber / 2を戻り値とします。

numberが奇数なら、collatz()は3 * number + 1とします。

次に、ユーザーに整数を入力してもらい、その数をcollatz()に渡して呼び出し、関数が1を返すまで関数の戻り値をcollatz()に渡して呼び出し続けるプログラムを書きなさい。

解答

私は以下のコードを書きました。


def collatz(number):
    try:
        if number % 2 == 0:
            return number / 2
        elif number % 2 == 1:
            return 3 * number + 1
        elif number == 0:
            print('1以上の整数を入力してください')
    except  ValueError:
        print('不正な引数です')

print('整数を入力してください')
num = collatz(int(input()))
print(num)

while num > 1:
    num = collatz(num)
    print(num)
    if num == 1:
        break
        

Pythonを使った業務効率化プログラムも作っているので、他の記事もぜひご覧ください。

おすすめ記事

PythonでFXのデータを取得する方法【ALPHA VANTAGE】

2023年iDeCoのベストな投資先は【コモディティ】Pythonで投資分析した話

フォルダ内の画像をパワーポイントにまとめるプログラム