printで桁数を出力したいな。
他にも、数値を出力するときに覚えておくべきことがあったら教えて欲しい。
こちらの悩みを解決しますね。
本記事の内容
・printで桁数を出力する方法
・printで数値を出力するときの注意点
・printの出力で3桁ずつカンマを付ける方法
・小数点以下の桁を切り捨てる方法
この記事を書いている自分は、プログラミング歴4年の駆け出し以上中堅未満のエンジニアです。
過去には、AI囲碁をWebアプリ化したり、Pythonでのアプリ開発、Web制作やフロントエンドのデザインまで幅広くやってきました。
今回はそんな経験をもとに解説していこうかと。
当サイトでは、覚えるべきところを全てまとめているので、画面を撮影して何度も読み返すことをおすすめします。
それでは、解説していきます!
printで桁数を出力する方法
printで桁数を出力するには、lenという組み込み関数を使用することで可能になります。
※組み込み関数とはプログラミング言語において最初から用意されている関数のことです。printなどと同じく、特別な準備なしですぐに使用できます
lenの使い方
lenを使えば文字数の出力も可能なので、一緒に紹介しますね。
lenの使い方
《桁数を出力する場合》
len(str(数値))
《文字数を出力する場合》
len(“文字列”)
「数値」の部分には1,10、100のような数値が、「文字列」の部分にはPythonのような文字列を入れて使います。
lenのサンプルコード
num = 24680
name = "Ken"
print(len(str(num)))
print(len(name))
出力結果は以下の通りです。
この場合でも、上記に書かれてある組み込みのstr関数は、使用することにより「整数を文字列に変換することができる」という役割を意味します。
printで数値を出力するときの注意点
printで数値を出力する場合に、注意すべきことは全部で2つです。
printで数値を出力するときの注意点
- マイナス符号や小数点は桁数に入る
- 指数表記になって見にくくなることがある
上から順に解説していきますね。
マイナス符号や小数点は桁数に入る
strで桁数を出力するときは、「マイナス符号や小数点は桁数に入る」ということを覚えておいてください。
ですがマイナス符号であれば、工夫することで正しい桁数を出力できます。
※小数点が付いている場合も工夫次第で正しい桁数を出力できますが、ここでは省略します。
マイナス符号のついた数値の正しい桁数を出力するには、絶対値に直す必要があります。
具体的には、abs関数を使うことで、絶対値に直すことができます。
変数に数値を代入したら
変数 = abs( 変数 )
変数 = str( 変数 )
変数 = len( 変数 )
print(変数)
という流れでプログラムを作りましょう。
下のサンプルコードをご覧ください。
num = -24680
num_new=num
num_new = abs(num_new)
num_new = str(num_new)
num_new = len(num_new)
print(num_new)
「num_new=num」のように、別の新たな変数に値を保存して変数の絶対値を変更しましょう。
numの絶対値は変わらず、元の状態を保つことができます。
指数表記になって見にくくなることがある
桁数を表記する際に、一つ注意点があります。
浮動小数点数とは、小数点を使用せずに整数と10の指数表記の掛け算で表される数値の表現方法であり、多くのプログラミング言語はこれに対応しています。
たとえば「2468.99」という数値は、浮動小数点数で表記すると「246899×10⁻²」です。
小数点以下の桁数が大きい数値を出力するときは、自動的に浮動小数点数で出力されてしまいます。
下の3パターンに分けて、プログラムを実行してみましょう。
- 何もつけない場合
- format関数を付ける場合
- rstrip関数を付ける場合
まずは、何もつけない場合です。
print(0.0001)
print(0.00001)
このように、小数点以下の桁数が5桁以上の場合、そのまま出力すると浮動小数点数での表記となってしまいます。
これだと読みにくいので、読みやすい表記に戻したいですよね。
次に、前に紹介したformat関数を使います。
format関数の第1引数で出力したい数値を、第2引数で
.「出力したい小数点の桁数」f
のように指定します。
たとえば8桁目まで出力したい場合は、次の通りです。
num = format(0.00001, '.8f')
print(num)
0.00001の数値の後にも桁が存在し、一見余計にも見えますが、小数点以下8桁が出来上がっているので成功です。
続いて、下の桁の0を消したい場合です。
rstripとformatの組み合わせで使ってみましょう。
print(format(0.0001, '.6f').rstrip('0'))
print(format(0.00000001, '.8f').rstrip('0'))
print(format(0.0000000001, '.9f').rstrip('0'))
3番目の数値の小数点以下が切り捨てられていますね。
小数点以下10桁の数値を出力しようとしているのに対して、第2引数で指定した「.9f」は小数点以下9桁まで出力を表すためです。
printの出力で3桁ずつカンマを付ける方法
printの出力で3桁ずつカンマを付けるには、formatを使うことで可能です。
print(“{:,d}” .format(数値))
「数値」の部分に数値を入れて出力すると、3桁ずつカンマで区切って出力されます。
いくつかサンプルコードを見てみましょう。
print("{:,d}".format(1438594))
引数など、特別なオプションなしにformatだけで3桁区切りの表記を出力できるようになるため、覚えておいて損はありません。
続いて、小数点がついていサンプルコードを見ていきましょう。
print("{:,}".format(100000000.2468))
小数点以下は、区切って出力されません。
小数点以下の桁を切り捨てる方法
math.floorを使うと、小数点以下を切り捨てて出力できます。
小数点以下を切り捨てるには、mathをimportしてから
math.floor(小数)
というプログラムを実行しましょう。
「小数」の部分には小数が入ります。
下のサンプルコードだと、、、
import math
math.floor(9.876)
9
と出力されます。
まとめ:printで桁数を出力する方法まとめ
まとめると、lenという関数を使ってprintで出力すると桁数が出力できるということです。
- マイナス符号が付いた場合の桁数出力方法
- 数値を出力するときの注意点
- 3桁ずつカンマを付けて出力する方法
- 小数点以下の桁を切り捨てる方法
なども詳しく解説したので、何度も読み返して覚えましょう。
コメント