基本文法をマスターするぞ!!その7
えっと、昨日ちょっとゲームを創ってみたんだけど、まだ基本文法をマスターできてないので、今日も勉強しようと思います。
今日はね〜〜〜forループからだね。今日も「はじめてのPython」から一部引用しています。
じゃっ始めようかな。
forループ
Pythonでは、シーケンスの個々の要素に1つずつ順にアクセスするようなコードを書く際、一般にforステートメント(forループ)を使用するんだって。シーケンス(シーケンスオブジェクト)っていうのは、文字列、リスト、タプルとかだったね♪(ちゃんと覚えてたw)forステートメントの形式
for <target> in <object>: #指定オブジェクトの要素をターゲットに代入 <statements> #ターゲットを使用して同じ処理を繰り返す else: <statements> #breakが実行された場合には実行されない
pythonのforループでは、指定されたオブジェクトの構成要素が、代入ターゲットに一つずつ順に代入されていく。
ターゲットに代入された要素一つ一つについて、ボディ部分にかかれた処理が行われる。
なるほどね〜一つ一つ取り出していくわけか。分かった分かった♪♪
break,continueも使えるよ
for <target> in <object>: #指定オブジェクトの要素をターゲットに代入 <statements> if <test>:break #ループを即終了 if <test>:continue #ループの先頭に即戻る else: <statements> #breakが実行された場合には実行されない
使用例
>>> for x in ['spam','ham','eggs']: print x, spam ham eggs >>> sum = 0 >>> for i in range(10): sum += i print i, 0 1 2 3 4 5 6 7 8 9
ちょっと複雑な例
>>> items = ["aaa",111,(4,5),2.01] #リストの代入 >>> tests = [(4,5),3.14] #リストの代入 >>> for key in tests: #testsのためのループ for item in items: #itemsのためのループ if item == key: #要素が一致するかの確認 print key, "was found" break else: print key, "not found!" (4, 5) was found 3.14 not found!
このコード、まず初めに、items,testsという2つの変数にリストが代入され、後者のリストの2つの要素それぞれについて、同じものが前者のリストに見つかるかが確認される。そして、見つかった場合にも、見つからなかった場合にもい、その旨が知らせられる。でもこのコードは下記のように簡単に書くことも出来るんだよ♪♪
>>> for key in tests: if key in items: print key,"was found" else: print key,"not found!" (4, 5) was found 3.14 not found!
このコードの方が簡単だね♪
>>> seq1 = "spam" >>> seq2 = "scam" >>> res = [] #空のリストを作成 >>> for x in seq1: #一方のシーケンスへのアクセス if x in seq2: #もう一方のシーケンスに同じ要素があるか? res.append(x) #共通する要素をリストの末尾に追加 >>> res ['s', 'a', 'm']
プログラミングの幅が広がった気がする♪もっと勉強するぞ!!