MENU
アーカイブ
腎機能評価ツールを無料公開中 ➡ココをタップ

Pythonの基礎#21 for文をbreak/continueで止める方法

\過去記事リンクやで/

その他のPython記事一覧はコチラ

/タップすると記事一覧ページが開くで☆\

Python学習にオススメ

Progate -楽しく学べるプログラミング学習アプリ

Progate -楽しく学べるプログラミング学習アプリ

Progate無料posted withアプリーチ


まいど!2020年6月からPythonの勉強をはじめた けいしゅけ(@keisyukeblog)です☆

前回の記事から for文 の基本を学びました。

今回は,次の疑問に対するアンサー記事を書こうと思います。

今まで勉強してきたことを応用してお買い物プログラムくらいは組めるんじゃないの?
for文やif文,辞書型リスト,input関数,各種演算子を使って何か書けませんか?

けいしゅけのアイコン画像けいしゅけ

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

タコちゅけのアイコン画像タコちゅけ

・・・できた。

けいしゅけのアイコン画像けいしゅけ

記事にならんがな💦

そんなわけで,この記事ではfor文やif文,辞書型リスト,input関数,各種演算子を用いた記述例に挑戦してみようと思います。

もしPythonにご興味があるのであれば,このブログ記事が何かしら参考になればと思います☆また,Twitterでもいいので,なにかコメント等あれば宜しくお願い致します!

これまでのPython基礎プログラム#1~20で何かプログラミングできないか?

到達目標

Python基礎プログラム20記事を用いて
お買い物】をプログラミングしてみる

けいしゅけのアイコン画像けいしゅけ

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

タコちゅけのアイコン画像タコちゅけ

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

けいしゅけのアイコン画像けいしゅけ

協調性大事やで !!!

完成形をまず公開します

基礎プログラム#1~20の内容を盛り込んだコードを駆使して3つ作ってみました
1つ目が基本形で,2つ目がfor文をbreakで終了させるもの,
3つ目はfor文をcontinueでi特定条件に当てはまる出力をスキップさせるものです

お買い物プログラムのコードを作る!

#文具の買い物リストを作ってみる
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とは何か?

for文で実行されている繰り返し操作(ループ処理)を終わらせる役割を持つものです
お買い物プログラムで言えば,else文に分岐された時点でfor文を終わらせるという意味になります

breakの使いどころをもうちょっと簡単なコードで解説

#辞書型変数としての磯野家に再登場してもらう
isono_members={'波平':'磯野家の主人','フネ':'磯野家の母','マスオ':'サザエの夫','サザエ':'磯野家の長女','カツオ':'磯野家の長男','ワカメ':'磯野家の二女','タラ':'マスオとサザエの子','タマ':'磯野家のペット'}

#for文で繰り返しメンバー紹介する
for member in isono_members:

#サザエが表示されたらメンバー紹介の出力停止
    if member == 'サザエ':
        print('>>>メンバー紹介はここまで')
        break
    print('磯野家には '+ member + '  がいます')
磯野家には 波平  がいます
磯野家には フネ  がいます
磯野家には マスオ  がいます
>>>メンバー紹介はここまで
けいしゅけのアイコン画像けいしゅけ

こんな風に,breakを用いることである一定条件を満たした時点で繰り返し操作を終了させることができるんや。

continueとは何か?

特定の要素だけをスキップし,ループ処理をすることです
お買い物プログラムで言えば,お金が足りなくなった場合に出力するコードを実行したのち,元のfor文を再開してループしていきます

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学習にオススメ

Progate -楽しく学べるプログラミング学習アプリ

Progate -楽しく学べるプログラミング学習アプリ

Progate無料posted withアプリーチ

\過去記事リンクやで/

その他のPython記事一覧はコチラ

/タップすると記事一覧ページが開くで☆\


今回の記事はここまでや☆

最後まで読んでくださってホンマおおきにっ!!お時間を使って読んでくださったことに心から感謝申し上げます!

\最新記事をメールでお知らせするで/

3,953人の購読者に加わりましょう

けいしゅけのアイコン画像けいしゅけ

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

タコちゅけのアイコン画像タコちゅけ

ウチのけいしゅけはSNSもやってまちゅ!良ければフォローしてやってくださいでしゅ💛

Twitterでけいしゅけをフォロー

けいしゅけFacebookにいいね!

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!

記事の感想など,ひとこと頂けますか?

コメントする

目次
閉じる