久しぶりに初心者向けの
講座をしようと思います。
数値に単位をつけるだけの
簡単なプログラムです。
解説動画はこちら
12345のような数値を
1万2345のように
単位をつけるだけの簡単なプログラムです。
出来上がりはこれです。
関数の中でどんなことをしているのかを
解説します。
1つ目の関数sli_num
文字列に直して分割します。
戻り値の結果部分見てみると
入力された数値を4桁で区切って
文字列のリストとして返しています。
str関数で入力値を文字列に直した後
[::-1]で文字列をひっくり返すことができます。
そうすれば、後ろから区切って
とることができます。
スライス機能を用いて
ひっくり返した数値から4桁ずつ取り
最後にまた[::-1]でひっくり返して
元に戻します。
そうすると元の入力値を4桁区切りで
切り取った文字列のリストが出来上がります。
['7890', '3456', '12']
これに単位を付けていきます。
2つ目の関数num_unitでは
1つ目の関数を用いて分割した数値に
単位を付けています。
あらかじめ単位をリスト値等で作っておき
それと数値を組み合わせた物を
最終的な結果として保持しておきます。
スライス機能では インデックスに
マイナスの値を用いると後ろ側から
値を取得することができます。
sli_numの戻り値は千の位から始まるので
一番末尾は空、続いて万の位、億の位・・・
と言うふうに文字をくっつけていき
最後にひっくり返して文字列のjoinメソッドで
結合して1つの文字列に直しています。
Python言語の中でも
数値と文字列の取り扱いや
リストの操作、for文の使い方などは
よく用いられる部分なので
ここをしっかり覚えておくと
仕事が捗ります。
是非、いろんなプログラムを作って
操作方法に慣れておきましょう。
今回はこれまでです
それでは。
講座をしようと思います。
数値に単位をつけるだけの
簡単なプログラムです。
解説動画はこちら
12345のような数値を
1万2345のように
単位をつけるだけの簡単なプログラムです。
出来上がりはこれです。
# 数値を4桁で分割する def sli_num(st): s = str(st) return [s[::-1][i:i+4][::-1] for i in range(0, len(s), 4)] # 数値に単位をつける def num_unit(num): sufs = ('無量大数','不可思議','那由他','阿僧祇','恒河沙', '極','載','正','澗','溝','穣','杼','垓','京', '兆', '億', '万', '') res = [] for i,p in enumerate(sli_num(num)): res += [p+sufs[(i+1)*-1]] return ''.join(res[::-1])num_unit(数値)で実行できます。
num_unit(10297540795524400449443986866480693)102溝9754穣0795杼5244垓0044京9443兆9868億6648万0693
num_unit(6344814611237963971310297540795524400449443986866480693646369387855336)63無量大数4481不可思議4611那由他2379阿僧祇6397恒河沙1310極2975載4079正5524澗4004溝4944穣3986杼8664垓8069京3646兆3693億8785万5336
関数の中でどんなことをしているのかを
解説します。
1つ目の関数sli_num
# 数値を4桁で分割する def sli_num(st): s = str(st) return [s[::-1][i:i+4][::-1] for i in range(0, len(s), 4)]この関数は入力された数値を
文字列に直して分割します。
戻り値の結果部分見てみると
s = str(1234567890) [s[::-1][i:i+4][::-1] for i in range(0, len(s), 4)]['7890', '3456', '12']
入力された数値を4桁で区切って
文字列のリストとして返しています。
str関数で入力値を文字列に直した後
[::-1]で文字列をひっくり返すことができます。
s[::-1]'0987654321'
そうすれば、後ろから区切って
とることができます。
スライス機能を用いて
ひっくり返した数値から4桁ずつ取り
i=0 s[::-1][i:i+4]'0987'
最後にまた[::-1]でひっくり返して
元に戻します。
s[::-1][i:i+4][::-1]'7890'
そうすると元の入力値を4桁区切りで
切り取った文字列のリストが出来上がります。
['7890', '3456', '12']
これに単位を付けていきます。
2つ目の関数num_unitでは
1つ目の関数を用いて分割した数値に
単位を付けています。
# 数値に単位をつける def num_unit(num): sufs = ('無量大数','不可思議','那由他','阿僧祇','恒河沙', '極','載','正','澗','溝','穣','杼','垓','京', '兆', '億', '万', '') res = [] for i,p in enumerate(sli_num(num)): res += [p+sufs[(i+1)*-1]] return ''.join(res[::-1])
あらかじめ単位をリスト値等で作っておき
それと数値を組み合わせた物を
最終的な結果として保持しておきます。
スライス機能では インデックスに
マイナスの値を用いると後ろ側から
値を取得することができます。
sli_numの戻り値は千の位から始まるので
一番末尾は空、続いて万の位、億の位・・・
と言うふうに文字をくっつけていき
最後にひっくり返して文字列のjoinメソッドで
結合して1つの文字列に直しています。
Python言語の中でも
数値と文字列の取り扱いや
リストの操作、for文の使い方などは
よく用いられる部分なので
ここをしっかり覚えておくと
仕事が捗ります。
是非、いろんなプログラムを作って
操作方法に慣れておきましょう。
今回はこれまでです
それでは。