それぞれの方法について、詳しく解説していきます。
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関数で桁数をカウントして結果を表示します。