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 など。
代入:変数にデータをいれること: =  代入演算子。
演算子乗算 /  割算 +足し算  引き算 >= == <= 関係
コメントこの演算子に続く文はコメント.メモ。
プログラミング手順:プログラム記述>文法チェック>実行

5.条件分岐 if もし ならば(真の判定) else でなければ(偽の判定)
 age = 77                                    # 年齢入力式
 if age >= 75 :                                 # 真条件判断文
    print "貴方は、後期高齢者です       # 結果出力文
    print  "枯れ葉マ−クをつけてください"         # 結果出力文
 else :                                              # 偽条件判断文
        print  "貴方はまだまだ。                # 結果出力文
貴方は後期高齢者です。                            実行結果。
枯れ葉マ−クをつけてください。                         

6.繰り返し (1)while 決められた回数実行(2)for順番に終りまで 実行 
(1) kaisu = 0                           # 回数カウンタ初期値。
while kaisu < :                             # 繰り返し条件文。
 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 ) PythonRubyも逐次実行する言語.インタ−プリタ.フリ−ソフト。

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                              # 益利回り率の算式
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 :                              #  次条件判断文  
   print "株価は普通"                      #  出力文   
else :                                      #  偽条件判断文
    print "株価は安め"                        #  出力文
株価は普通                      実行結果。
リスクプレミアムが5%付近ならば株価水準は高い、6%付近ならば普通、7%付近ならば安い。山崎 元氏(週刊ダイヤモンド誌)の考え方を使いました。
 リスクプレミアムとは、リスクに応じて投資家が期待する上乗せ分の収益率です。
(4)ディクショナリ構造 小さなデ−タベ−ス:例  電話帳です。
>>> tel={'yamada':"833-4361",'suzuki':"811-5656",'oota':"822-3235"}
         氏名をキーとして電話番号を関連付ける。中カッコ{}で囲む
>>> tel['suzuki']    鈴木さんの電話番号を取り出す、角カッコ[]で囲む
'811-5656'              実行結果。
>>> tel['yamada']        山田さんの電話番号を取り出す
'833-4361'              実行結果。
>>> tel['tobariri']         戸張さんの電話番号を取り出す
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柴田淳著。ソフトバンククリエイティブ.第一章)

戻る