Python言語超入門 読書余滴 2008/06/05 戸張道也 コンピュータ言語は経営の様々な場所で利用されています。どんな作用をするのかの超入門として記述しました。言語としてPythonを使います。 参考書:Pythonで学ぶプログラム作法。アラン.ゴ−ドン著.松葉素子訳.ピアソン.エデュケ−ション:C言語超入門.藤森水絵著.技術評論社 Pythonチュ−トリアル.(Rossum著.鴨沢真夫訳.オライリ−ジャパン)
1・基本:コンピュータ言語とはどんなものか :Python:エレガントで実用性を兼ね備えた、シンプルで強力な本格的言語 (* 赤:コマンド 青:入力文 黒:出力された結果 色区分は理解の便宜上) 最初にでてくる有名な例 >>> print "hello world"; # hello world と出力する一行の文 hello world 実行結果。
2・画面に出力するには print 文 文字列を出力する ””か''で囲む。 (1)文字: >>> print "good morning"; print "good evening"; print "good luck" good morning 実行結果。 good evening good luck
3.数値・変数・計算 (上から下に順次実行) 三角形の面積を計算して出力する。 >>> takasa = 3 # 高さデータの入力式 >>> teihen = 4 # 底辺データの入力式 >>> menseki = takasa * teihen / 2 # 面積計算式 >>> print "高さは ",takasa ;print "底辺は ",teihen ;print "面積は ",menseki # 計算結果を出力する文 高さは 3 実行結果。 底辺は 4 面積は 6
4.用語 プログラム:コンピュ−タに仕事のやり方を告げる。 文:コンピュ−タに命令を伝える単位 式:コンピュータから値を得る式 コマンド(命令語):print if while forなど。 デ−タ:情報の素となる材料 変数:データの入れ物:takasa teihen menseki など。 代入:変数にデータをいれること: = 代入演算子。 演算子:*j乗算 / 割算 +足し算 − 引き算 >= == <= 関係 コメント;#この演算子に続く文はコメント.メモ。 プログラミング手順:プログラム記述>文法チェック>実行
5.条件分岐 if もし ならば(真の判定) else でなければ(偽の判定) age = 77 # 年齢入力式 if age >= 75 : # 真条件判断文 print "貴方は、後期高齢者です。" # 結果出力文 print "枯れ葉マ−クをつけてください。" # 結果出力文 else : # 偽条件判断文 print "貴方はまだまだ。” # 結果出力文 貴方は後期高齢者です。 実行結果。 枯れ葉マ−クをつけてください。
6.繰り返し (1)while 決められた回数実行(2)for順番に終りまで 実行 (1) kaisu = 0 # 回数カウンタ初期値。 while kaisu < 3 : # 繰り返し条件文。 print "All works and no play makes Jack a dull boy" #出力文 kaisu = kaisu + 1 #カウンタ増加式。 All works and no play makes Jack a dull boy 実行結果。 All works and no play makes Jack a dull boy All works and no play makes Jack a dull boy (2) kazu = [0,1,2,3,4,5,6,7,8,9] # リスト(配列)式。 for item in kazu : # 内容取出し文。 print item , # 出力文。 0 1 2 3 4 5 6 7 8 9 実行結果。
7.まとめ 文の基本構造は.順次実行、条件分岐、繰り返しの三つです。 コンピュ−タ言語は人工物です。すべて了解可能なもので成り立っています。決まりが重要です。誤りは許されません。想像力もありません。
8.コンピュ−タ言語の利用方法 (1)購入アプリ−ケ−ション:ソ−スプログラムは隠蔽されています。 (2)日常業務:表計算、デ−タベ−ス等アプリケーションを使用。 (3)専門プログラマ:C C++ Java,.. 大規模プログラムを作る。 (4)Pythonを学ぶ:小さなデ−タベ−スを作る、言語の基本を学ぶ、頭の体操。 (5)学び方1:言語の基本を覚える。小さな仕事をプログラム化する。 (はじめてのプログラミングRubyを使ってChrisPine著西山伸訳.オ−ム社) (6)学び方2:プログラミングそのものを楽しむ:たのしいRuby.高橋征義、後藤 裕蔵著・まつもとひろゆき監修・ソフトバンククリエイティブ. (7 ) PythonもRubyも逐次実行する言語.インタ−プリタ.フリ−ソフト。
9.少し実用的な短いプログラム (1)贈与税の計算 : 贈与税速算表(国税庁) print "万単位で入力してください。" zouyo = input() 贈与額の入力をもとめる関数。 300 実行結果 (贈与額万単位) zouyo = zouyo - 110 基礎控除110万円をさしひきます。 if zouyo <= 110 : 以下速算表のとおりに条件分岐します zei = 0 print zei elif zouyo <= 200 : elif は条件分岐が多いとき、次条件 zei = zouyo * 0.1 を記述するときに使います。 print zei elif zouyo <= 300 : zei = zouyo * 0.15 -10 print zei 以下3つのブロックの表示省略 else: zei = zouyo * 0.5 - 225 print zei 18.5 実行結果(贈与税額万円単位) (2)利回り計算 デ−タ:利回り、満期金、投資額 関数を作る def rimawari(manki,tousi,kikan) : def ( ) : で関数を作成 print ((manki-tousi)/kikan)/tousi*100 計算し%で printする >>> rimawari(120,100,3.0) 関数呼出と引数入力 6.66666666667 実行結果(%)戻り値 >>> rimawari(66,50,4.5) 関数を呼出し別の投資案のデ−タを入力 7.11111111111 別の投資案の 実行結果(%) 用語:関数:繰り返し実行する処理を関数としてまとめ、定義しておき、関数名で(例rimawari)呼出し、引数(66,50,4.5)を入力すると結果(戻り値)が得られる。 書式:書式定義を加えるともうすこし解りやすい出力表現ができる。6.7%等 (3) 株価水準の評価 per = 16.27 # 株価収益率 の入力式per ekiri= (1.0 / per ) * 100 # 益利回り率の算式 mgdp = 1.5 # 成長率の入力式 kitai = ekiri + mgdp # 株主期待率 の算式 kinri = 1.55 # 長期金利率の入力式 riskp = kitai - kinri # リスクプレミアムの算式 print riskp # リスクプレミアムの出力文 6.01 実行結果。 if riskp <= 5.5 : # 真条件判断文 print "株価は高め" # 出力文 elif 通riskp <= 6.5 : " # 出力文 else : # 偽条件判断riskp <= 6.5 : # 次条件判断文 print "株価は普文 print "株価は安め" # 出力文 株価は普通 実行結果。 リスクプレミアムが5%付近ならば株価水準は高い、6%付近ならば普通、7%付近ならば安い。山崎 元氏(週刊ダイヤモンド誌)の考え方を使いました。 リスクプレミアムとは、リスクに応じて投資家が期待する上乗せ分の収益率です。 (4)ディクショナリ構造 小さなデ−タベ−ス:例 電話帳です。 >>> tel={'yamada':"833-4361",'suzuki':"811-5656",'oota':"822-3235"} 氏名をキーとして電話番号を関連付ける。中カッコ{}で囲む >>> tel['suzuki'] 鈴木さんの電話番号を取り出す、角カッコ[]で囲む '811-5656' 実行結果。 >>> tel['yamada'] 山田さんの電話番号を取り出す '833-4361' 実行結果。 >>> tel['tobari'] 戸張さんの電話番号を取り出す KeyError: 'tobari' コレクションにないキーを指定したのでエラー表示が出た >>> tel ['tobari']="811-5252" 戸張さんの電話番号をコレクションに追加する >>> tel['tobari'] 追加した戸張さんの電話番号取り出してみる '811-5252' 実行結果。 >>>tel.items() コレクションの内容を確認する。 [('yamada','833-4361'),('suzuki','811-5656'),('oota','822-3235'),('tobari', '811-5252')] 実行結果。 用語:ディクショナリ:キーとそれに関連付けられた値が格納されたデータ構造 :キーをインデックス(索引)として使用する。 以上ざっと眺めてください。範囲は情報学科の初期講義とほぼ一致しています。 (みんなのPython.柴田淳著。ソフトバンククリエイティブ.第一章 |