とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub
スポンサードリンク

WindowsでPython その5(while文)

ペースダウン


今日で5日連続更新です。
ハイペースの更新に反比例して、勉強時間の質が20分、10分、5分と、落ちてきました。
とりあえず1センテンス頑張ればいいかなと。。。読者の方も(いるのか?)あんまり頑張りなさんな。
人生長いんだよ。

処理を繰り返す制御構文


昨日に続き、今日も制御構文のお話です。
前回はifで条件分岐したけど、今回は「何か」を繰り返す処理です。
一般的には「ループ」って言います。

「だんだんPythonじゃなくてプログラムそのものの話をダラダラ言うようになってきたね?」
というツッコミがきそうです。

うん。そうなんだ。

制御構文打つ時に、いちいち調べるんじゃなくて、ソラで打てるようになるために、自分で反復練習してるんですよ。
それに付き合いきれないとか言わないで、一緒に繰り返そうぜ

今日参考にしたサイトはもちろん、日本語Pythonホームページです。
8.2. while 文¶(原文)

whileで「君がッ泣くまで殴るのをやめないッ!」プログラム


繰り返し処理といっても、forとかwhileとか、いろんな書き方(日常会話)があります。
今日はwhileを使って、「君がッ泣くまで殴るのをやめないッ!」を表現してみます。

うりゃ

WindowsでPython その5(while文)

Pythonでは、制御構文のうしろに「:」をとにかく付けて改行します。
この表記はCとかVBやってる人はなかなか身につかないんじゃないかな?

有名どころの書き方だと、こんな感じで
だいたいは制御構文は「{}」を使うからね。
while ( bool ) {
//なんか処理
}

while のあとにある、インデント(字下げ)されたブロック全部が、繰り返し実行する処理となります。
「else:」って書いた後のインデントブロックが、繰り返し処理を抜けた後の処理になります。

while の後の()に書いている条件に合致するまで、永遠にループします。
今回の例だと、入力で yes じゃなければ( != )ずっと殴るって書いてます。

F5で実行

WindowsでPython その5(while文)

yesって入れたらループが終了して「else:」の後が呼び出されるけど、
それ以外ならずっと殴られてることが確認できました。

別の書き方


while だけ取っても、いろんな書き方ができます。
色々書き方あるけど、これがオススメってあるの?って思うでしょ?
これもガイドラインに従うべきなんだろうけど、読んでないし、決まってるかもしらない。

このように書いても、同じ動きになります。

WindowsでPython その5(while文)

WindowsでPython その5(while文)

while (True): って書いてます。
これは「条件なんかねえ、常に合致するんだ」って意味なので、永遠にループします。
それを避けるために、ループの中で if 文を書いて、
もし yes って言われたらループを終わらせる命令「break」と書いてます。
if文を一行で書く小技も入ってますね。(個人的には見にくいので使いたくない)

とにかくいろんな書き方ができるし、好みもあるけど、少なくとも自分の書くコードは統一しときましょう。
あ、私はどうかって?そもそもwhileをそんなに使いません・・・極力別のループ制御文を使います。

While は、続ける条件をプログラムミスすると永遠にループします。
これを「無限ループ」といい、まぁ、、プログラムのフリーズに繋がったり、処理が終わらない問題がでたりするので
他のループ文をできるだけ使うようにしています。

最後に


いかがでしたでしょうか。
ブログタイトル変更や、方針すぐかえる朝令暮改な感じ。
さらに、日に日にコンテンツが短くなっていくことは保証します!

とはいえ、このシリーズはコピペしてどうにかする事を目的にしてるんでなくて、
ド素人の私がPythonを使ってデスクトップを作れるようになるまで頑張るシリーズなので
なのでソースをテキストで貼り付けてなくて、全部画像なのです。(めんどういだけ)

というわけで不幸にもこのシリーズを読み進めてしまったら、自分で手を動かしてコード組んでくださいね。

それが一番、Pythonの基礎を体に叩き込む行動だと思います。

ではまた!!

★Python の記事一覧★
▼この記事を読んだ方は、こんな記事も読んでいます。▼

スポンサードリンク

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://dalmore.blog7.fc2.com/tb.php/165-807f2ff2
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad