複数の商品を買った時のレシートが、商品毎に税抜で書かれているお店が結構あります。
家計簿を書く時に、1商品毎に電卓で8%とか10%とかを計算するのが面倒なので、
リストに税抜価格を書いていって、一度に消費税計算をしてリストで返す方法を使ったら電卓不要で簡単だったので、その方法をご紹介。
(8%と10%を混合で計算すると、構文がややこしくなるので8%だけで計算する方法にしています。10%の場合はint(x * 1.08)
を int(x * 1.10)
に変えるだけ。)
Pythonの開発環境がない場合は、Google Colaboratory (Colab)がおすすめ。
詳しくは下記をご参照ください。
https://qiita.com/saki_bleue/items/ca29364f1f79cce5078f
ラムダ式のmap関数
# 消費税8%のもの、少数以下切り捨てで計算。
# []の中の数字はサンプルです。
a = list(map(lambda x: int(x * 1.08), [348, 798, 448]))
print(a)
上記を実行すると [375, 861, 483]
と税込価格がリストの形で結果として返ります。
int(x * 1.08)
のところで、少数型を整数型へキャスト=少数以下を切り捨てしています。
[]の中の数字のところを、サンプルと同じようにカンマ区切りで税抜価格を入れて実行してください。入れる数字は何個でも大丈夫。
何個の商品を計算したか知りたい場合は、 print(len(a))
で[]の中にある値の数を返してくれます。
関数を定義する方法
関数を作る方法もありますが、行数が長くなるので上のパターンで充分かと思います。
一応載せておきますので参考にしてみてください。
def multiply_and_floor(lst):
result = []
for x in lst:
val = int(x * 1.08)
result.append(val)
return result
nums = [348, 798, 448]
a = multiply_and_floor(nums)
print(a)
nums = [348, 798, 448]
の[]の中はサンプルの価格です。