Python学習にオススメ
まいど!2020年6月からPythonの勉強をはじめた けいしゅけ(@keisyukeblog)です☆
前回の記事から for文 の基本を学びました。
今回は,次の疑問に対するアンサー記事を書こうと思います。
今まで勉強してきたことを応用してお買い物プログラムくらいは組めるんじゃないの?
for文やif文,辞書型リスト,input関数,各種演算子を使って何か書けませんか?

・・・いっちょ書いてみるか。



・・・できた。



記事にならんがな💦
そんなわけで,この記事ではfor文やif文,辞書型リスト,input関数,各種演算子を用いた記述例に挑戦してみようと思います。
もしPythonにご興味があるのであれば,このブログ記事が何かしら参考になればと思います☆また,Twitterでもいいので,なにかコメント等あれば宜しくお願い致します!
これまでのPython基礎プログラム#1~20で何かプログラミングできないか?
Python基礎プログラム20記事を用いて
【お買い物】をプログラミングしてみる



基礎プログラムの集大成を作ってみよう。
意外とここまでやってきたことだけでも面白いプログラミングができるもんやなぁって思いたいし!!



終わったしコーヒー飲むでちゅ。



協調性大事やで !!!
完成形をまず公開します
お買い物プログラムのコードを作る!
#文具の買い物リストを作ってみる
lists = {'tag': 100, 'pen': 1000, 'eraser': 150, 'note': 220}
for list_name in lists:
print('--------------------------------------------------')
print(list_name + 'は1つ' + str(lists[list_name]) + '円です')
# inputを用いて入力を受け取り,変数input_countに代入する
input_count = input('購入する' + list_name + 'の個数を入力してください>>>')
# keyと変数input_countを用いて「購入する◯◯の個数は△△個です」となるように出力する
print('購入する' + list_name +'の数は' + input_count + 'つです')
# input_countを数値として変数countに代入する
count = int(input_count)
# 変数total_priceに文具1つの値段と変数countを掛けた値を代入する
total_price = lists[list_name] * count
# 変数total_priceと型変換を用いて,「支払い金額は◯◯円です」となるように出力する
print('支払い金額は'+str(total_price)+'円です')
#文具のお買い物をpythonで疑似体験する
#所持金は3000円
money = 3000
#文具の買い物リストを作ってみる
lists = {'tag': 100, 'pen': 1000, 'eraser': 150, 'note': 220}
for list_name in lists:
print('--------------------------------------------------')
print(list_name + 'は1つ' + str(lists[list_name]) + '円です')
# inputを用いて入力を受け取り,変数input_countに代入する
input_count = input('購入する' + list_name + 'の個数を入力してください>>>')
# keyと変数input_countを用いて「購入する◯◯の個数は△△個です」となるように出力する
print('購入する' + list_name +'の数は' + input_count + 'つです')
# input_countを数値として変数countに代入する
count = int(input_count)
# 変数total_priceに文具1つの値段と変数countを掛けた値を代入する
total_price = lists[list_name] * count
# 変数total_priceと型変換を用いて,「支払い金額は◯◯円です」となるように出力する
print('支払い金額は'+str(total_price)+'円です')
# 買えるかどうかmoneyとtotal_priceの比較結果で条件分岐する
if money >= total_price:
print(list_name + 'を' + input_count +'つ買いました')
# 手持ちの金額を更新する
money -= total_price
print('残金は' + str(money) + '円です')
# ちょうどお金がゼロになった場合のメッセージを準備しておく
if money == 0:
print('スッテンテンになりまちた☆')
else:
# 手持ちの不足金額を fusoku という変数に代入
fusoku = money - total_price
print('アカン!お金が' + str(fusoku*-1) +'円 足りひんわっ💦')
print(list_name + 'を買いたいのでATMへダッシュじゃぁああ!!')
# お金が無くなったら break で終わりにする
break
#所持金は3000円
money = 3000
#文具の買い物リストを作ってみる
lists = {'tag': 100, 'pen': 1000, 'eraser': 150, 'note': 220}
for list_name in lists:
print('--------------------------------------------------')
print(list_name + 'は1つ' + str(lists[list_name]) + '円です')
# inputを用いて入力を受け取り,変数input_countに代入する
input_count = input('購入する' + list_name + 'の個数を入力してください>>>')
# keyと変数input_countを用いて「購入する◯◯の個数は△△個です」となるように出力する
print('購入する' + list_name +'の数は' + input_count + 'つです')
# input_countを数値として変数countに代入する
count = int(input_count)
# 変数total_priceに文具1つの値段と変数countを掛けた値を代入する
total_price = lists[list_name] * count
# 変数total_priceと型変換を用いて,「支払い金額は◯◯円です」となるように出力する
print('支払い金額は'+str(total_price)+'円です')
# 買えるかどうかmoneyとtotal_priceの比較結果で条件分岐する
if money >= total_price:
print(list_name + 'を' + input_count +'つ買いました')
# 手持ちの金額を更新する
money -= total_price
print('残金は' + str(money) + '円です')
# ちょうどお金がゼロになった場合のメッセージを準備しておく
if money == 0:
print('スッテンテンになりまちた☆')
else:
# 手持ちの不足金額を fusoku という変数に代入
fusoku = money - total_price
print('アカン!お金が' + str(fusoku*-1) +'円 足りひんわっ💦')
print(list_name + 'を買いたいのでATMへダッシュじゃぁああ!!')
continue



意外と書けちゃうものだと思いませんか?
是非ともVSCodeで上記のコードをコピペして動かしてみてください!
break と continueの違いはコードを実行すると,ハッキリ違いが判ると思います!!
breakとは何か?
breakの使いどころをもうちょっと簡単なコードで解説
#辞書型変数としての磯野家に再登場してもらう
isono_members={'波平':'磯野家の主人','フネ':'磯野家の母','マスオ':'サザエの夫','サザエ':'磯野家の長女','カツオ':'磯野家の長男','ワカメ':'磯野家の二女','タラ':'マスオとサザエの子','タマ':'磯野家のペット'}
#for文で繰り返しメンバー紹介する
for member in isono_members:
#サザエが表示されたらメンバー紹介の出力停止
if member == 'サザエ':
print('>>>メンバー紹介はここまで')
break
print('磯野家には '+ member + ' がいます')
磯野家には 波平 がいます
磯野家には フネ がいます
磯野家には マスオ がいます
>>>メンバー紹介はここまで



こんな風に,breakを用いることである一定条件を満たした時点で繰り返し操作を終了させることができるんや。
continueとは何か?
continueの使いどころをもうちょっと簡単なコードで解説
#辞書型変数としての磯野家に再登場してもらう
isono_members={'波平':'磯野家の主人','フネ':'磯野家の母','マスオ':'サザエの夫','サザエ':'磯野家の長女','カツオ':'磯野家の長男','ワカメ':'磯野家の二女','タラ':'マスオとサザエの子','タマ':'磯野家のペット'}
#for文で繰り返しメンバー紹介する
for member in isono_members:
#サザエが表示されたらメンバー紹介の出力停止
if member == 'サザエ':
print('>>>メンバー紹介はここまで')
continue
print('磯野家には '+ member + ' がいます')
磯野家には 波平 がいます
磯野家には フネ がいます
磯野家には マスオ がいます
>>>メンバー紹介はここまで
磯野家には カツオ がいます
磯野家には ワカメ がいます
磯野家には タラ がいます
磯野家には タマ がいます



【メンバー紹介はここまで】が出力されて,特定要素=’サザエ’の紹介がスキップされてまちゅね!



うん。continueの特徴が表現されているのがわかると思う!
もうちょい例文を出そうか。
#数式でwhile文を使ってみる
x=65
while x > 19:
x -= 3
if x == 41:
print('stop roop')
break
print(x)
65
62
59
56
53
50
47
44
stop roop
#数式でwhile文を使ってみる
x=65
while x > 19:
x -= 3
if x == 41:
print('stop roop')
continue
print(x)
62
59
56
53
50
47
44
stop roop
38
35
32
29
26
23
20
17



数式でも同じやね。
初期値を65として,xが19よりも大きい数字の時に,「xにx-3をした値代入する作業を繰り返せ」
というコードが組まれている。
breakなら「もしxが41になったら”roop stop”と出力して繰り返しストップ」という条件が入るので,x=44から3を引いた41という数値を返すところで”roop stop”と出力してストップ。
continueの場合は『もしxが41になったら”roop stop”と出力してその要素(値)での数式処理はスキップ。その後,xが19よりも大きい数字の時に,「xにx-3をした値代入する作業を繰り返せ」を再開する』ので,x=44から3を引いた41という数値を返すところで”roop stop”と出力しつつ,ループ処理は継続して最終的にx=20の時に3を差し引いて得られるx=17でループ処理が終了しているわけや。



while文ってなんでちゅか?これまでにやってない気がしましゅ。



うむ。うっかり書き忘れてた項目や。
ただ,内容は簡単やねん。条件を満たす間,繰り返し処理をするものをwhile文といって,while 条件文:
でコーディングするだけや。
for文が出力条件分けする要素の個数が少ないのに対して,while文は要素が多い場合に使うって感じで使い分けするねん。
最後にVSCodeで動作確認(要素の入替・追加)
VSCodeにコードを記入して動かしてみよう!
#所持金は3000円
money = 3000
#文具の買い物リストを作ってみる
lists = {'tag': 100, 'pen': 1000, 'eraser': 150, 'note': 220}
for list_name in lists:
print('--------------------------------------------------')
print(list_name + 'は1つ' + str(lists[list_name]) + '円です')
# inputを用いて入力を受け取り,変数input_countに代入する
input_count = input('購入する' + list_name + 'の個数を入力してください>>>')
# keyと変数input_countを用いて「購入する◯◯の個数は△△個です」となるように出力する
print('購入する' + list_name +'の数は' + input_count + 'つです')
# input_countを数値として変数countに代入する
count = int(input_count)
# 変数total_priceに文具1つの値段と変数countを掛けた値を代入する
total_price = lists[list_name] * count
# 変数total_priceと型変換を用いて,「支払い金額は◯◯円です」となるように出力する
print('支払い金額は'+str(total_price)+'円です')
# 買えるかどうかmoneyとtotal_priceの比較結果で条件分岐する
if money >= total_price:
print(list_name + 'を' + input_count +'つ買いました')
# 手持ちの金額を更新する
money -= total_price
print('残金は' + str(money) + '円です')
# ちょうどお金がゼロになった場合のメッセージを準備しておく
if money == 0:
print('スッテンテンになりまちた☆')
else:
# 手持ちの不足金額を fusoku という変数に代入
fusoku = money - total_price
print('アカン!お金が' + str(fusoku*-1) +'円 足りひんわっ💦')
print(list_name + 'を買いたいのでATMへダッシュじゃぁああ!!')
break
#所持金は3000円
money = 3000
#文具の買い物リストを作ってみる
lists = {'tag': 100, 'pen': 1000, 'eraser': 150, 'note': 220}
for list_name in lists:
print('--------------------------------------------------')
print(list_name + 'は1つ' + str(lists[list_name]) + '円です')
# inputを用いて入力を受け取り,変数input_countに代入する
input_count = input('購入する' + list_name + 'の個数を入力してください>>>')
# keyと変数input_countを用いて「購入する◯◯の個数は△△個です」となるように出力する
print('購入する' + list_name +'の数は' + input_count + 'つです')
# input_countを数値として変数countに代入する
count = int(input_count)
# 変数total_priceに文具1つの値段と変数countを掛けた値を代入する
total_price = lists[list_name] * count
# 変数total_priceと型変換を用いて,「支払い金額は◯◯円です」となるように出力する
print('支払い金額は'+str(total_price)+'円です')
# 買えるかどうかmoneyとtotal_priceの比較結果で条件分岐する
if money >= total_price:
print(list_name + 'を' + input_count +'つ買いました')
# 手持ちの金額を更新する
money -= total_price
print('残金は' + str(money) + '円です')
# ちょうどお金がゼロになった場合のメッセージを準備しておく
if money == 0:
print('スッテンテンになりまちた☆')
else:
# 手持ちの不足金額を fusoku という変数に代入
fusoku = money - total_price
print('アカン!お金が' + str(fusoku*-1) +'円 足りひんわっ💦')
print(list_name + 'を買いたいのでATMへダッシュじゃぁああ!!')
continue



for文がbreak/continueで止められました(一部スキップできた)!!



ヨッシャ!!バッチリやなッ!!
Pythonの勉強はまだまだ続くでっ!!
さて,今回は基礎プログラム#1~20の総まとめと,break/continueについて書いてきました。コードを再現できましたか??
もしも不明点などがあれば,いつでも,Twitterで質問していただくか,コメント欄に記入してくださいね☆
次回からは,関数やモジュールについて書いていこうと思いますッ!!



せんせーぃ。コーヒーできましたよ~☕
おしまい
Python学習にオススメ
今回の記事はここまでや☆
最後まで読んでくださってホンマおおきにっ!!お時間を使って読んでくださったことに心から感謝申し上げます!
\最新記事をメールでお知らせするで/



この記事の感想をコメントしていただけるとメッチャうれしいです!!
ご意見&ご質問も遠慮なく書いてください☆皆さんとの対話を楽しみにしています☆
下のボタンを押すとコメント記入欄へジャンプできますよ~!!



ウチのけいしゅけはSNSもやってまちゅ!良ければフォローしてやってくださいでしゅ💛
Twitterでけいしゅけをフォロー
けいしゅけFacebookにいいね!
記事の感想など,ひとこと頂けますか?