作者: 機械伯爵
日時: 2002/4/20(20:09)
 ども、機械です。

 タイトルが「入門者のための〜」になってますが、「最低限度何を教えるべきか」
というような話題になりますので、実際の初心者に対する話題として上げる前に、
ここで少し話したいと思います。

 経緯については、Pythonの部屋の#114をご覧ください(かいつまんで言えば、
入門書と銘打つ本が難しかった、というわけです)

 私の経験だと、最初にポケコンのBASICを使って実用プログラムを書いた時、
使った命令はprint,input,if then,gotoだけでした。

 実際これだけで、大学の卒論の統計処理や、品質管理試験計算をこなしました。

 ・・・今考えると、電卓を打つよりちっとはマシ、程度ですが、少なくとも、
品管計算の場合は、電卓と対応表が必要だったので、その速度を考えれば
かなりマシだったと思います。

 というわけで、どんな言語を使うにせよ、入門者用のプログラム例としては、
最初にこういう形のものが示されると良いと思いますがいかがでしょうか?
(少なくとも、Hello worldの次は・・・)

#---Pythonによる入門者用簡易演算プログラム---

next = 1
while next:
  print "足し算を行います"
  x = input("x= ")
  y = input("y= ")
  z = x + y
  print "x+y=",z
  next = input("終了しますか?(yes:0,no:1) ")

#---Pythonによる入門者用簡易演算プログラム---

 わざわざzを出しているのは、ここの行をいろいろ代えられるよ、という
のを説明しやすいようにしてます。

 入力数や、演算式を変えれば、これだけで結構長く使えると思います。

 あとは、本来ならawkの分野なのですが、ファイルを利用したフィルタなど、
わりと簡単ながらプログラムの実力が分かりやすい分野だと思います。

#---Pythonによる入門者用簡易リスト処理プログラム---
# <入力ファイル>
# DATA名 DATA1 DATA2
# <出力ファイル>
# DATA名 DATA1+DATA2
# 
import sys
import string
f_input  = open(sys.argv[1],"r")
f_output = open(sys.argv[2],"w")

while 1:
  data_r = f_input.readline()
  if data_r == "":break
  data_rs = string.split(data_r)
  data_wi = int(data_rs[1]) + int(data_rs[2])
  data_w = data_rs[0] + " " + str(data_wi) + "\n"
  f_output.write(data_w)

f_input.close()
f_output.close()

#---Pythonによる入門者用簡易リスト処理プログラム---

 ・・・Pythonで書くと、やっぱ長いですね。

 awkだと・・・

{print $1 " " $2+$3 "\n"}

 ・・・ですね(汗)

※やっぱ、リスト処理はawkのほーが簡単だわ・・・

※ちなみに、Pythonでも標準入出力を使うとスクリプトが若干簡単
 になるのだけど、ファイル終端を検出するのがやや面倒

 というわけで、初心者、プログラミング入門者がすぐ使えそうな実例、他に
ありますでしょうか?

※で、ここでネタの選定を行って初心者部屋へと・・・

   機械伯爵