Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで数値の階乗を求める方法を解説!forループとrange関数の使い方

階乗(factorial)とは、1からその数までのすべての整数を掛け合わせた積のことです。例えば、5の階乗は「5 × 4 × 3 × 2 × 1 = 120」となります。

Pythonで指定した数の階乗を求めるには、range()関数を使って1からその数まで繰り返すforループを作成します。ここで注意すべき点は、range()関数は終了値(ストップ値)を含まないという仕様です。そのため、終了値は入力された数値より1大きい値(num+1)を指定する必要があります。

階乗を求めるPythonコードの例

ループ内では、各数値を変数 f に累積的に掛けていきます。この変数 f は初期値として 1 を設定しておきます。0ではなく1で初期化するのは、掛け算における単位元が1だからです。

num = int(input('enter a number'))
f = 1
for i in range(1, num + 1):
    f = f * i
print('factorial of', num, '=', f)

実行結果

上記のコードを実行したサンプルは以下のとおりです。

enter a number5
factorial of 5 = 120

math.factorial()を使った別の方法

Pythonの標準ライブラリである math モジュールには、階乗を直接計算できる factorial() 関数が用意されています。自分でループを書く必要がないため、より簡潔にコードを書くことができます。

import math

num = int(input('enter a number'))
print('factorial of', num, '=', math.factorial(num))

どちらの方法でも同じ結果が得られますが、学習目的であればループ処理の仕組みを理解するために自作する方法から始めるのがおすすめです。

  1. Pythonでファイルを検索する方法|os.walkによるディレクトリ走査の基本

    Pythonで特定のディレクトリの中から目的のファイルを探したい場合、標準ライブラリの os.walk を使ってディレクトリツリーを再帰的に走査するのが定番の方法です。サブフォルダも含めてすべてのファイルを自動的にチェックできるため、階層が深いフォルダ構成でも柔軟に対応できます。os.walkを使ったファイル検索の実装例import os def find_file(file_name, directory_name): files_found = [] for path, subdirs, files in os.walk(directory_name):

  2. Python関数の引数の数を取得する方法【inspectモジュール活用】

    Python関数の引数の数を調べるには? たとえば、次のようなスクリプト qux.py があるとします。 #qux.py def aMethod1(arg1, arg2): pass def aMethod2(arg1, arg2, arg3, arg4, arg5): pass このスクリプトの中身が分からない(ソースコードにアクセスできない)場合でも、Pythonの標準ライブラリである inspect モジュールを使えば、関数が受け取る引数の数や名前を簡単に調べることができます。 inspectモジュールで引数の一覧を取得する まず、inspect モジュールをインポー