📔

pythonで基礎的なプログラムを作る(会計)

2023/05/23に公開

pythonで基礎的なプログラムを作る

こんにちは!pythonの勉強をしております、わいわわです

progateさんのカリキュラムを学習中、
課題のプログラム作りがありましたのでアウトプットとしてまとめます。

3種の果物のお会計を、残金と比べながら実行するプログラム

money = 1000
items = {'apple': 100, 'banana': 200, 'orange': 400}
for item_name in items:
    print('--------------------------------------------------')
    print('財布には' + str(money) + '円入っています')
    print(item_name + 'は1個' + str(items[item_name]) + '円です')
    
    input_count = input('購入する' + item_name + 'の個数を入力してください:')
    print('購入する' + item_name + 'の個数は' + input_count + '個です')
    
    count = int(input_count)
    total_price = items[item_name] * count
    print('支払い金額は' + str(total_price) + '円です')
    
    if money >= total_price:
        print(item_name + 'を' + input_count + '個買いました')
        money -= total_price
        if money == 0:
          print('財布が空になりました')
          break
    else:
        print('お金が足りません')
        print(item_name + 'を買えませんでした')
        
    print('残金は'+ str(money) +'円です')

解説

簡単な解説をします!

items = {'apple': 100, 'banana': 200, 'orange': 400}

↑これは辞書です、左の果物名がkeyになっており、指定すると値段を呼び出すことができます。

for item_name in items: 以下すべて

forを使用した繰り返し構文です。今回のキモです!
先ほど定義したitemsには3つのデータが入っていますが、
item_nameに1つずつ代入されていき、データの数分以下すべてのコードを繰り返します。
最初は「apple」ですべてのコードを行い、次は「banana」で行うイメージです!

print('--------------------------------------------------')
print('財布には' + str(money) + '円入っています')
print(item_name + 'は1個' + str(items[item_name]) + '円です')

1行目は見やすくすためです!
3行目のitems[item_name]では定義した辞書の右側の値段の部分を呼び出しています。
このような形で辞書の中身を呼び出すことができます。

if money >= total_price:
    print(item_name + 'を' + input_count + '個買いました')
    money -= total_price
    if money == 0:
      print('財布が空になりました')
      break
else:
    print('お金が足りません')
    print(item_name + 'を買えませんでした')

if文内の解説です。
ここではお金が合計金額より多い場合とそれ以外(お金が合計金額より少ない場合)に分けて
処理を変更しています。
また、if文をさらにネストしており、
もしお金が0の場合は「財布が空になりました」と表示し、breakで処理を中止しています。

この流れを辞書にいれたデータの数だけ実行しているという感じです!
また、money(お金)は一度最初の「apple」の処理を終えるとその分、減りますよね。
その減った金額がmoneyに代入されたまま、またfor分の先頭から「banana」が始まります。
再代入されているイメージですね、実際の会計と同じですね!

所感

前回と比べて、辞書やfor文を実装したプログラムでした。
少しづつ理解できているので、さらに難しいものが作れるよう勉強頑張っていきます!

Discussion