スキルUPの道しるべ

本サイトはプロモーションを含みます
上に戻る

【Python】『print』を使って桁数を表示する方法!実践的なコード例で解説!

Pythonにおいて、数字の桁数を表示する方法は複数あります。
それぞれの方法について、詳しく解説していきます。

len関数を使う方法

まず最初の方法は、len関数を使う方法です。
len関数は、与えられたシーケンスの要素数を返します。
数字を文字列に変換した後、その文字列の長さをlen関数で取得することで、数字の桁数を求めることができます。

num = 12345
digits = len(str(num))
print("数字の桁数:", digits)

このコードでは、num変数に整数型の数字が格納されています。
str(num)を使うことで、numを文字列に変換しています。
そして、len()関数でその文字列の長さ(=数字の桁数)を取得し、digits変数に格納しています。

実行結果:

数字の桁数: 5

数字の桁数をカウントする方法

次に、whileループを使って数字の桁数をカウントする方法を見ていきましょう。
この方法では、数字を10で割りながら、割れる回数をカウントすることで、数字の桁数を求めます。

num = 987654321
count = 0
while num != 0:
    count += 1
    num //= 10
print("数字の桁数:", count)

このコードでは、num変数に整数型の数字が格納されています。
whileループは、numが0になるまで続きます。
numを10で割り、その結果をnumに再代入することで、数字を1桁ずつ削っていきます。
同時にcount変数をインクリメントして、削った回数を数えます。

実行結果:

数字の桁数: 9

実践的な例: ユーザーからの入力を処理するプログラム

次は、より実践的な例を見てみましょう。
以下のプログラムは、ユーザーからの入力を受け取り、その入力された数字の桁数を表示するものです。

def get_input():
    while True:
        try:
            num = int(input("数字を入力してください: "))
            return num
        except ValueError:
            print("無効な入力です。再度入力してください。")

def count_digits(num):
    count = 0
    while num != 0:
        count += 1
        num //= 10
    return count

def main():
    num = get_input()
    digits = count_digits(num)
    print("入力された数字の桁数:", digits)

if __name__ == "__main__":
    main()

このプログラムは、以下の手順で動作します。

1. get_input関数では、ユーザーからの入力を受け取ります。入力が整数でない場合は、再度入力を求めます。
2. count_digits関数では、与えられた数字の桁数をカウントします。
3. main関数では、入力を受け取り、桁数をカウントして結果を表示します。

解説:
このプログラムでは、ユーザーからの入力を受け取るための関数や、桁数をカウントするための関数が定義されています。

・get_input関数では、input関数を使ってユーザーからの入力を受け取ります。入力が整数でない場合は、ValueErrorが発生し、再度入力を求めます。
・count_digits関数では、与えられた数字の桁数をカウントするために、whileループを使っています。数字を10で割りながら、割れる回数をカウントしています。
・main関数では、get_input関数で入力を受け取り、count_digits関数で桁数をカウントして結果を表示します。

おすすめ書籍

Pythonプログラミングを手を動かしながら学びたい方に、『独習Python』がおすすめです。
この書籍は、プログラミング初心者向けにわかりやすく丁寧に解説がされており、独習用に使用することができます。
Pythonの基本から標準ライブラリ、オブジェクト指向構文、モジュールまで幅広く解説されており、サンプルプログラムを例示しながら丁寧に説明されています。
初心者から再入門者、学生など、Python言語をしっかり身につけたい方にお勧めの一冊です。

まとめ

以上が、Pythonで数字の桁数を表示する方法です。
len関数を使う方法は簡潔で直感的ですが、大きな数字に対しては文字列に変換するオーバーヘッドが発生する可能性があります。
一方、whileループを使う方法は、数字を直接操作するため、大きな数字でも効率的に桁数を求めることができます。

数字の桁数を知ることは、プログラミングにおいて非常に重要です。
ぜひこの記事を参考にして、Pythonでの数字の桁数表示に慣れてください。