文科系のpython入門  
       http://www.tobari-kaikei.com/cgi-bin/login.cgi 更新君
                            
                         201301014修正中  戸張道也
 
 プログラミングを学ぶことは 、泳ぎを覚えるのに似ている。いくら理論を学んでも、プールに飛び込んで、息をしようと喘ぎながら水の中で手足をばたつかせる経験には代えられない。 (bruce a・tate著 7つの言語 7津の世界 まつもとひろゆき監修田和勝訳 オーム社)                                                        
 
プログラミングは大きくて複雑な仕事を単純で基本的文で実行できるまで小さく、小さくブレイクダウンする仕事です。
(ALLEN B・DOENEY ”PYTHON FOR SOFTWARE DEZAIN”
 ”HOW TO THINK LIKE A COMPUTER SCIENTIST” CAMBRIGE

python言語はPythonIDLEを使用して作成します。 IDLEはpythonダウンロードするとき、同時に取得できる統合エディタ-です。(ダウンロードの方法は第1章に記載)
pythonは、プログラミング言語の中では、おそらくもっとも簡単に学べ、もっとも快適に使える言語です。
pythonは高級言語。高級言語とは、人間にとって、理解しやすいように作られた言語。コンピュターには直接理解できないので、インタープリターを介して実行されます。
プログラミングには誤りが常に発生します。誤りを修正する作業をdebuggingと言います。プログラムが正しく動作するまでデバッグしなければなりません


コンピュータに仕事をさせるに必要なもの
1コンピュータ            手持ちのパソコン
2ソフトウエア            EXCEL、 python、filemakerpro等
                    のソフトウエア

3マニュアル や知識のある友人 
4データ:プログラム操作の対象。

(1)はじめに

最初のプログラム
PythonIDLEの画面  
>>>の表示で入力を受付ます。
print(”hello"、 ”world”)   
hello、 world
>>> s="HELLO PYTHON"     
変数s(valuable)にメッセージプログラムHELLO PYTHONを格納する
>>> print(s)
HELLO PYTHON    

(2)電卓のように使う。

>>> 2+3                         + 加算演算子 −減算演算子
5
>>> 2 * 3               *乗算演算子
6
>>> 1 / 2                / 割り算演算子
0
関数を使って求める
>>> float(1/2)
0.5                   答えを浮動小数点で示す
>>> 'aaa'               文字列は’ ’か” ”で囲む
'aaa'
>>> len('aaa')            len関数は文字の長さを示す
3
>>> len('aaa') + len('ttt')       文字列の加算
6
>>> 'aaa' + 5     文字列と数字の演算はできない。データのタイプが異なる。下記のような警告文が表示される。
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: cannot concatenate 'str' and 'int' objects
エラーの意味
'str' は文字列 5は整数だから加算できない.
  type:型を調べる  コンピュ−タが扱う要素には型が決められています。
>>> type(1)         type関数でデータの型を調べる
<type 'int'>         int  整数
>>> type('1')
<type 'str'>         str  文字列
    
>>> type(1.0)        
<type 'float'>       float 浮動小数点
. 
(3)簡単なプログラムを作成してみます。

数学記号と意味は算数とほぼ同じです。+ ー / * ( ) プラス、マイナス、ワル、カケル、カッコ
データ 時給1200円 今月の勤務時間 79時間
賃金はいくら?
>>> 1200*79
   94800
データ 今週の売上
月 12000 火 105000 水 98000 木 115000 金123000
土 157000 日136000
一周間の平均売上は?
>>> 12000+105000+98000+115000+123000+157000+136000
746000
>>> 746000/7
106571.42857142857
平均値を計算する関数、四捨五入する関数などは後で学ぶことができます。これらの計算は表計算ソフトで容易にできますがPYTHONのような本格的コンピュ−タ言語はもっと大きな可能性を秘めています。

 
(4)用語:

プログラム:コンピュータに実行させる命令を並べたもの。コンピュータに実行させる 処方箋です。
コードcodeプログラムとして表現された手順
 : Expressions Statement
関数:functionきめられた仕事をするプログラム
値: data コンピュータ言語が扱う対象物
型: Type データの種類
整数: integer 
文字列 string ””、’’で囲まれて表現される
浮動小数点少数: float 
変数:valuable データを格納する場所の名前
式:expression 値 変数 演算子 で構成され、PYTHONで理解されるように記述される

>>> a = 3
>>> a
3
a  'variable'変数
3 は 変数aの値.
>>> 私 = '日本人です
'  式 私 は変数

>>>  私         変数名を入力して値を表示
  '日本人です'
>>> n=3           変数を定義する
>>> pi=3.14         変数を定義する
>>>
print(n*pi)       print文で計算結果を表示する
9.42

>>> print("GDP では、社会の幸福度は判断できない。")
    GDP では、社会の幸福度は判断できない。
OPERATERS: 演算子
+ - * /  **  加算 減算 掛け算 割り算 乗算
OPERAND:   被演算子 演算の対象
>>> 123*150   123 150は オペランド
            演算子
(5)演算子の適用順序

算数演算の規則と同様
分かりやすく機銃するにはカッコを使用する。
文章における演算子の役割
+ *
 >>> a="山田さん"
>>> b="は"
>>> c="太り過ぎです。"
>>> print(a+b+c)            演算子を連結する。
山田さんは太り過ぎです。
>>> print(a+b+c*3)           *乗算演算子繰り返し
山田さんは太り過ぎです。太り過ぎです。太り過ぎです。

(6)COMMENTS コメント #

PYTHON
言語を読むときに理解しやすくするのにコメントは有用です。

>>> z=0.05 #消費税率です       
変数zに消費税率
                        
を代入

>>> p=12000000 #購入価額です   変数pに購入価額を代入
>>> 消費税額=p*z            変数消費税額にp*zの式を代入
>>> print(消費税額)           変数消費税額が参照する値を出力
600000.0

(7)文字列  Strings

>>> from string import *  文字列モジュ−ルを導入する文字列演算
>>> s="あをぞら"
>>> s*3
'あをぞらあをぞらあをぞら'>
>>> len(s)              len関数は文字列の長さを算出
4
>>> s2=s*3
>>> len(s2)
12
>>> "あ"in s           
 in関数は指定された値が文字列中の有  
                    無を判定する

True
>>> S[1]              {}文字列リストの2番目の値を出力する
 'を'
>>> 'atgc' == 'atgc'        文字列の同一性を判定する
True
>>> 'atgc' == 'gcta'
False
>>> 'atgc' == 'ATGC'
False
小文字にする
>>> EcoRI = lower(EcoRI)   大文字を小文字に変換する
  
(8)関数. Functions

今まで使用した関数 len(), count(), lower(), find(), replace(), 等は組込.関数としてpythonに用意された関数。
さらにユーザ定義関数を作成できる。
>>> def おもてなし():
...       print( "東京によくいらっしゃいました。")
...       print( "日本の首都を楽しんでください。")
インシデントincident(字下げ)で区分された文は関数が呼ばれたとき実行される。
ユーザ定義関数の実行
>>> おもてなし()
東京によくいらっしゃいました。
日本の首都を楽しんでください。

特定の人物にメッセージを伝えるために関数を変更する。
次のように関数を変更する。
>>> def おもてなし():
...   print ("東京によくいらっしゃいっました。, Jobs!")
...   print ("日本の首都を楽しんでください。")
また別人にメッセージを送るに 引数parameterを採用する

仮引数parameter
>>> def おもてなし(person):      personは仮引数parameter
...    print ("東京によくいらっしゃいました。, ", person, "!")
...    print ("日本の首都を楽しんでください。")
...
>>> welcome("Jobs")     上のプログラムを呼び出し、実引数を 
                     Jobsとした

東京によくいらっしゃいました。, Jobs!
日本の首都を楽しんでください。

(9)リスト. Lists

各種タイプの要素をリストにまとめることができる。:
>>> l = ['a', 'b', 1, 'a cat']
インデックス indicesで要素にアクセスできる。
>>> l[1]
'b'
 '+'演算子 operatorの使用
>>> ['お', 1] + [2, '伝記']
['お', 1, 2, '伝記']
...新しいリストが作成される
数字のリストを作る。range関数を使う
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
0から始まって9まで10個の数列ができた
変数名 lを使う
>>> l = range(10)

次はpython言語の創作者の著書を東北大学で翻訳したものの一部です。

1. やる気を高めよう(原文)

コンピュータを使って様々な作業をしていたら、自動化したい作業が出てくるでしょう。たとえば、たくさんのテキストファイルで検索-置換操作を行いたい、大量の写真ファイルを込み入ったやりかたでリネームまたは整理したいといったものです。ひょっとすると、小さなカスタムデータベースや、何かに特化したGUIアプリケーション、シンプルなゲームを作りたいかもしれません。

Pythonはそんなあなたのための言語です。

Pyhon は簡単に利用できますが、本物のプログラミング言語であり、シェルスクリプトやバッチファイルで提供されるよりもたくさんの、大規模プログラム向けの構造やサポートを提供しています。一方、 Python は C よりたくさんのエラーチェックを提供しており、超高級言語(very-high-level language) であり、可変長配列や辞書などの高級な型を組込みで持っています。そのような型は一般的なため、 Python は Awk や Perl が扱うものより (多くの場合、少なくともそれらの言語と同じくらい簡単に)大規模な問題に利用できます。

Python ではプログラムをモジュールに分割して他の Python プログラムで再利用できます。Python には膨大な標準モジュールが付属していて、プログラムを作る上での基盤として、あるいは Python プログラミングを学ぶためのサンプルとして利用できます。組み込みモジュールではまた、ファイル I/O 、システムコール、ソケットといった機能や、Tk のようなグラフィカルユーザインタフェースツールキットを使うためのインタフェースなども提供しています。

Python はインタプリタ言語です。コンパイルやリンクが必要ないので、プログラムを開発する際にかなりの時間を節約できます。インタプリタは対話的な使い方もできます。インタプリタは対話的にも使えるので、言語の様々な機能について実験してみたり、書き捨てのプログラムを書いたり、ボトムアップでプログラムを開発する際に関数をテストしたりといったことが簡単にできます。便利な電卓にもなります。

Python では、とてもコンパクトで読みやすいプログラムを書けます。Python で書かれたプログラムは大抵、同じ機能を提供する C 言語, C++ 言語やJava のプログラムよりもはるかに短くなります。これには以下のようないくつかの理由があります:

  • 高レベルのデータ型によって、複雑な操作を一つの実行文で表現できます。
  • 実行文のグループ化を、グループの開始や終了の括弧ではなくインデントで行えます。
  • 変数や引数の宣言が不要です。

ところで、この言語は BBC のショー番組、”モンティパイソンの空飛ぶサーカス (Monty Python’s Flying Circus)”から取ったもので、爬虫類とは関係ありません。このドキュメントでは、モンティパイソンの寸劇への参照が許可されているだけでなく、むしろ推奨されています!

さて、皆さんはもう Python にワクワクして、もうちょっと詳しく調べてみたくなったはずです。プログラミング言語を習得する最良の方法は使ってみることですから、このチュートリアルではみなさんが読んだ内容を Python インタプリタで試してみることをおすすめします。