退屈なことはPythonにやらせよう【3.11.1 コラッツ数列】
2024-11-26 by 内田裕之
こんにちは。
Pythonで業務効率化を図るうっちゃんです。
いまは「退屈なことはPythonにやらせよう」という本でPythonを学習しています。
退屈なことはPythonにやらせよう 第2版 ―ノンプログラマーにもできる自動化処理プログラミング
今回は演習プロジェクト3.11.1 コラッツ数列の解答です。
この記事は内容に広告・プロモーションを含みます。
演習内容
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】