とまと あんらいぷ…

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

GitHub
スポンサードリンク

WindowsでPython その6(for文)

一番よく使うループ処理


前回、whileというループ文を使いました。

今日は、最もよく使うであろうループ文である「for」をいじってみます。
今日もマニュアルをカンニング
4.2. for 文
これをソラで打てなきゃ日常会話ができないのと同じ。
とにかく叩いて慣れましょう。

for文の使い方


文法はこうです。

for ループ変数 in 範囲:
なんかやりたい処理
else:
ループが無事に全部終わったらやる処理


さて、とりあえず「範囲」について、これは「どっからどこまで」とか、処理をするタバです。
お手本通りに叩いてみます。

WindowsでPython その5(for文)

range(3)っての書いてます。range を直訳すると"範囲"です。
数値になおすと 0 と 1 と 2 になります。

で、それをprint で出力してみる。

WindowsでPython その5(for文)

書いたとおりに出てますね。

数値以外のものも出してみる


rangeで数値の範囲を指定しましたが、リストとか配列とかいったものも指定できます。
これもサンプル通りに文字列の配列を作ってみます。
が、、、よくわからない説明がありますね。
4.2. for 文
原文を見てもよくわからん。
説明文としては

ループ内部でイテレートしているシーケンスを修正する必要があれば (例えば選択されたアイテムを複製するために)、最初にコピーを作ることをお勧めします。シーケンスに対するイテレーションは暗黙にコピーを作りません。スライス記法はこれを特に便利にします:
(中略
for w in words: を使った場合は、この例は defenestrate を何度も繰り返し挿入することで、無限リストを作成しようとします。)

よく分からないので実行してみる。

WindowsでPython その5(for文)

WindowsでPython その5(for文)

最初に文字列を作って、それを「範囲」としてループしてますね。
でも、ループ中に元のwordに、もしwが6文字以上であれば、その文字を追加するというような命令が書かれてます。
wordをいじるということは、ループ中に判断材料が変わるということです。
ループが終わった後にprint すると結果の通り。
この書き方だと最初の値がそのまま使われているような・・・

words[:] の偉大さ



words[:]というのが何かヒントになりそうなので、[:]を削除してみる。

WindowsでPython その5(for文)

実行結果

結果が返ってこなくなったので、 Ctrl + C で中断しました。
KeybordInterrrupt というメッセージがキーボードで処理を割り込みしたよという意味です。
Pythonでは Ctrl + C で実行中の処理を終了できるそうです。

WindowsでPython その5(for文)

これって、
for w in words: を使った場合は、この例は defenestrate を何度も繰り返し挿入することで、無限リストを作成しようとします。
に該当しそうですね。
最初に[:]で範囲をコピーすることで、ループ中にその影響を与えないようにできるみたいですね。

breakとcontinue


for文つかってて、途中で処理を抜けたり、この値のときは何もせずに、次のループの値を処理したい時があります。
だいたいどの言語でもあるので割愛しますが、Pythonでもbreakとcontinueキーワードが備えられています。

else:文は、breakで抜けた時は実行されないようです。

ちなみに else: が実行される条件は以下の通りです。
・繰り返しを1度も実行しなかった時(例えばwhileだと条件がいきなりfalseの時)
・breakでループを抜けなかった時

WindowsでPython その5(for文)

WindowsでPython その5(for文)

このコードでは、偶数の時なら叫んで、だけど10のときは何もせずに次の値へ。
rangeで100を指定しているけど、50回で疲れ果てて、途中でやめようと break しています。

forは覚えておこう


さて今回の記事ですが、for文は多分すべての言語にある日常会話です。
ハロー!サンキュー!みたいなもんです。
必須の文法なので、いちいち調べずに打てるようにしておきましょう!

ではまた!

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

スポンサードリンク

コメント

コメントの投稿


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

トラックバック

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

FC2Ad