はじめに
このプロジェクトでは、非負整数の階乗を計算する方法を学びます。正整数の階乗は、それ以下または等しいすべての正整数の積であり、0 の階乗は 1 です。
👀 プレビュー
$ python factorial.py
2! = 1 * 2 = 2
8! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 = 40320
🎯 タスク
このプロジェクトでは、以下のことを学びます。
~/projectディレクトリにfactorial.pyファイルを作成する方法- 非負整数の階乗を計算するための
factorial関数を実装する方法 - 負の入力を処理して
ValueErrorを発生させ、「非負整数を入力してください」というメッセージを表示する方法
🏆 成果
このプロジェクトを完了すると、以下のことができるようになります。
- 階乗の概念とその計算方法を理解する
- 非負整数の階乗を計算する Python 関数を書く
- 入力エラーを処理し、適切なエラーメッセージを表示する
- Python プログラミングの知識を適用して、現実世界の問題を解決する
factorial.py ファイルを作成する
このステップでは、~/project ディレクトリに factorial.py ファイルを作成します。以下の手順に従ってこのステップを完了しましょう。
- 新しいファイルを作成し、
~/projectディレクトリにfactorial.pyとして保存します。
cd ~/project
touch factorial.py
factorial.pyファイルに、以下のコードを追加します。
def factorial(n):
"""
非負整数の階乗を計算します。
引数:
n (int): 階乗を計算する非負整数。
戻り値:
str: 入力整数の階乗を "{n}! = {factors_str} = {result}" の形式で返します。
例外:
ValueError: 入力整数が負の場合。
"""
## ここにコードを追加してください
これは、次のステップで実装する factorial 関数の起点となります。
階乗関数を実装する
このステップでは、factorial.py ファイルに factorial 関数を実装します。以下の手順に従ってこのステップを完了しましょう。
factorial.pyファイルで、## Add your code hereコメントを以下のコードに置き換えます。
def factorial(n):
"""
非負整数の階乗を計算します。
引数:
n (int): 階乗を計算する非負整数。
戻り値:
str: 入力整数の階乗を "{n}! = {factors_str} = {result}" の形式で返します。
例外:
ValueError: 入力整数が負の場合。
"""
if n < 0:
raise ValueError("Please enter a non-negative integer.")
elif n == 0:
return "0! = 1"
else:
result = 1
factors = []
for i in range(1, n + 1):
result *= i
factors.append(str(i))
factors_str = " * ".join(factors)
return f"{n}! = {factors_str} = {result}"
## 部分的なサンプル出力:
print(factorial(2))
print(factorial(8))
このコードは、非負整数の階乗を計算する機能を実装しています。負の入力の場合には ValueError を発生させて処理し、0 の場合には "0! = 1" を返します。その他の非負整数の場合には、1 から入力数までのすべての数を掛け合わせて階乗を計算し、望ましい形式で結果を返します。
factorial.pyファイルを保存します。
あなたの factorial.py ファイルは現在完成しており、任意の非負整数の階乗を計算するために factorial 関数を使用できます。
- 実装をテストするには、ターミナルで以下のコマンドを実行します。
$ python factorial.py
2! = 1 * 2 = 2
8! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 = 40320
まとめ
おめでとうございます!このプロジェクトを完了しました。あなたは実験技術を向上させるために LabEx でさらに多くの実験を行うことができます。



