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

Pythonで整数の桁数を求める方法をわかりやすく解説

この記事では、ユーザーから入力された整数の桁数を求めるPythonプログラムを紹介します。初心者にもわかりやすいように、アルゴリズムの考え方からサンプルコード、実行結果まで順を追って解説していきます。

実行例

入力:123 → 出力:3
入力:1987 → 出力:4

アルゴリズム

桁数を求める基本的な流れは以下の通りです。

  1. ユーザーから整数値を入力として受け取ります。
  2. 数値を10で割り、その商を整数型(int)に変換します。
  3. 商が0でなければ、桁数のカウントを1つ増やします。
  4. 商が0になった時点でカウントを終了します。
  5. 処理を終了し、桁数を出力します。

サンプルコード

x = int(input("User Input: "))
count_of_digits = 0
while x > 0:
    x = int(x/10)
    count_of_digits += 1
print("Number of Digits: ", count_of_digits)

実行結果

User Input: 123
Number of Digits: 3

User Input: 1987
Number of Digits: 4

解説

数値を10で割った結果をint型に変換すると、小数点以下が切り捨てられ、実質的に一の位の数字が削除されます。この操作を繰り返すたびに数字が1桁ずつ減っていくため、「10で何回割れるか」を数えれば、それがそのまま元の整数の桁数になります。そして、数値が0になった時点でwhileループを抜け、カウントしておいた値が出力されます。

別の方法:文字列変換を利用する

よりシンプルな方法として、数値を一度文字列に変換し、組み込み関数 len() で文字数を取得する方法もあります。

x = int(input("User Input: "))
count_of_digits = len(str(abs(x)))
print("Number of Digits: ", count_of_digits)

abs() 関数で絶対値に変換しておくことで、負の数を入力された場合でもマイナス記号を含まない正しい桁数を取得できます。状況に応じて、ループを使う方法と文字列変換を使う方法を選択するとよいでしょう。

  1. Pythonのリストから最大値を取得する方法|max()関数の使い方を解説

    Pythonで最大値を見つけるには?Pythonには、リストなどのイテラブル(反復可能なオブジェクト)の中から最大の数値を簡単に取り出すための組み込み関数 max() が用意されています。この関数は、カンマ区切りで渡した複数の数値、あるいはリスト・タプルなどのコレクションを引数に受け取ることができます。基本的な使い方まず、複数の数値を直接引数として渡す例を見てみましょう。>>> max(10, 23, 43, 21) 43このように、max() に数値をカンマ区切りで渡すと、その中で最も大きい値である 43 が返されます。リストから最大値を取得する次に、リストを引数として渡す

  2. Pythonで実際のユーザーのホームディレクトリを取得する方法

    Pythonでユーザーのホームディレクトリを取得するには、osモジュールのos.path.expanduser(~)を使うのが最も一般的で簡単な方法です。この関数は、~/Documents/my_folder/のようにパスの一部に「~」が含まれている場合でも、正しくホームディレクトリのパスへ展開してくれます。また、パスに「~」が含まれていない場合は、渡されたパスをそのまま変更せずに返します。 方法1:os.path.expanduser()を使う import os print(os.path.expanduser(~)) 方法2:環境変数HOMEを参照する 環境変数からHOMEの値を直接取得