《02》スケール課題〈Python 2.x 版〉
実録:はじめてのプログラミング《記事一覧》
《02》スケール課題
《著》小粒ちゃん+α《監修》小泉ひよ子とタマゴ倶楽部
2009年1月15日(木)
関連記事
今日の進捗
Comment | |
---|---|
本人:野中 | 課題と同じ結果が得られるようになりましたが思ったほど楽ではありませんでした。 |
担当:伊藤 | 初めてのプログラミング言語が Python だと、Java の for 文に象徴される「情報隠蔽の原則」に反するコード〈for と別れる50の方法《1》for 文の隘路 - 続・ひよ子のきもち〉を記述できなくなるので、「反面教師」として Java の問題点を体験しておくといいですよ。次章でデータ構造を学ぶので、その後で復習をかねて、より深く理解できるように指導をお願いします(to 本間さん)。 |
本日のワンポイント
研修テキストでは、while/for が等価にならない事例として、break/continue について紹介しています。
def ex(): for e in range(9): print e, print >>> ex() 0 1 2 3 4 5 6 7 8
まず、比較したいもとの動作を確認しておきます。
def ex(): for e in range(9): print e, if e>3: break print >>> ex() 0 1 2 3 4
def ex(): e = 0 while e<9: print e, if e>3: break e += 1 print >>> ex() 0 1 2 3 4
次に、break の影響について考察します。
def ex(): for e in range(9): print e, if e>3: continue print >>> ex() 0 1 2 3 4 5 6 7 8
def ex(): e = 0 while e<9: print e, if e>3: continue e += 1 print >>> ex() 0 1 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Traceback (most recent call last): ... KeyboardInterruptそして、continue の影響について考察します。Tips
この課題は、プログラムが暴走(無限ループなど)したときの対処法を伝授する好機にもなります。《ひよ子》Last updated♪09/03/01