Pythonプログラミング入門

概要
  簡単なプログラムを書きながら,Pythonの基礎を習得する.

目次

レベル0

プログラムとは(かなり大雑把な説明)

  • プログラムとは,コンピュータの処理の手順を表すもの
    • 例えば, MicrosoftExcel はパソコンに表計算をさせるためのプログラム
  • プログラム言語とは,人間による仕事の命令をコンピュータ(ロボット)が理解できるように置き換えた言語のこと
    • つまり,人間にもロボットにも理解できる言語
    • 例えば,「画面上に hello と表示してください.」という命令は Python では「print 'hello'」となる.
  • プログラムはプログラム言語を用いて記述する.

Pythonとは

  • Python とはプログラム言語の一種
  • Python は「パイソン」と読む.
  • ファイル拡張子は .py
  • 無料でインストール可能
  • ライブラリが充実している.
     ライブラリ:汎用性の高いプログラムをまとめたもの.例えば,本来実装が難しい顔認識や,複雑な数学的計算(対数,三角関数など)を簡単に使うことができる.
  • 是非使ってみましょう.

基礎事項

半角と全角

  • プログラムでは基本的に半角文字を使う.
    • 全角文字は日本語を表示させる場合に使う.
    • 例えば,
      print 'hello'
      は,半角文字を使用しているので実行できるが,
      print ’hello
      は全角文字を使用しているので実行できない.
  • 特に,全角スペースには注意!!
    • 全角スペースと半角スペースは別物.
    • 全角スペースと半角スペースの見分けがつきにくいので,エラー原因の発見が難しくなる.
    • 例えば,
      print 'hello'
      は,print と ' の間に半角スペースを使っているので実行できるが,
      print 'hello'
      は,print と ' の間に全角スペースを使っているので実行できない.

インデント

  • インデントとは,行の左端に配置する空白
    例:print の左の空白がインデント
    if x < 10:
    	print 'X is small'
    else:
    	print 'X is large'
  • Tab キーやスペースキーでインデント(空白)を挿入できる.
  • Python ではインデントが重要!!
  • インデントの長さを間違えるとプログラムが正しく動かない.

コメント

  • コメントとは,プログラムの処理内容などを分かり易くするためにプログラム中に記述するメモのようなもの.
  • 処理内容には影響しない.
  • プログラム中には積極的にコメントを書くようにする.(他の人にも分かり易いように !)
  • Python では以下の2種類の書き方がある.
    • シャープ(#)の右側をコメントとする書き方
      例:
      print 'Hello World'	#ここがコメント
    • 3つのシングルクォーテーション(''')で囲んだ領域をコメントとする書き方
      例:
      print 'Hello World'
      '''
      ここがコメント
      print 'Hello Python'
      この領域は無視される
      '''
      print 'Hello Indent'
      実行結果:
      Hello World
      Hello Indent

準備

  1. デスクトップに "test" フォルダを作成
  2. メモ帳を起動
  3. 画面上部の [ファイル(F)] をクリック
  4. [名前を付けて保存(A)...] をクリック
  5. デスクトップに作成した "test" フォルダに "test.py" というファイル名で保存
  6. コマンドプロンプトを起動
    • 画面左下で右クリックし, "コマンドプロンプト" を左クリック
      • 起動方法
        cmd_place.png
      • 外観
        cmd.PNG
  7. 以下のコマンドを順に入力して "test" フォルダの内容を表示
    • デスクトップに移動
      cd Desktop
    • "test" フォルダに移動
      cd test
    • フォルダの内容を表示
      dir
    • "test.py" が存在することを確認
      test.PNG

レベル1

(1) helloworld : とにかく書き始める

演習

  1. 適当な場所にフォルダを作成し,helloworld.py という名前のテキストファイルを作成し,エディタ(メモ帳など)で開け

  • 今回はデスクトップに test フォルダを作成
  1. 以下のプログラムをエディタに入力せよ.
    コピー&ペーストせずに,キーボードで入力すること.
    print の後には半角スペースを入力すること.
    print 'Hello World'
    print 'Hello Python'
  2. 上記プログラムを実行せよ.
    • コマンドプロンプトにファイル名を入力して Enter キーを押す.
      helloworld.py
    • 以下のような結果が表示されたらOK.
      helloworld.png

解説

プログラムを順に解説する.理解できなかった部分は積極的に質問すること.

  • 1行目では"Hello World" という文字列を表示する.
  • 2行目では"Hello Python" という文字列を表示する.
  • Pythonでは print の次に半角スペースを空けて,表示したい文字列を書く.この時,表示したい文字列は''シン

グルクォーテーション (')'' で挟む.

  • つまり,
    print '表示したい文字列'
    と表記する.

(2) 変数の理解

変数とは数値を格納する箱のようなもの.Pythonでは

x=18

と表記すると"x"という箱の中に18が格納される.
変数は演算に使用する.例えば,

y=x*5

と表記すると変数 x の値に5を掛けてyに代入する.つまり「''"x"という箱の中の数値に対して5を掛けた答えを,"y"という

箱の中に格納する.''」ということになる.Python で使われる基本的な演算子を以下に挙げる.

Python での書き方数学的な書き方
+
-
*×
/÷
=
( )[ ],{ },( )

演習

  1. test フォルダの中に,variable.py という名前のファイルを作成し,エディタで開け.
  2. 以下のソースコードを入力せよ.
    コピー&ペーストせずに,キーボードで入力すること.
    x=18
    y=x*5
    print y
    z=x*5.0
    print z
  3. 上記プログラムを実行せよ.
    • コマンドプロンプトにファイル名を入力して Enter キーを押す.
      variable.py
    • 以下のような結果が表示されたらOK.
      90
      90.0

解説

  • 1行目では変数 x に18を代入する.つまり,「"x"という箱の中に18を格納する.」ということになる.
  • 2行目では変数 x の値に5を乗じてyに代入する.つまり「''"x"という箱の中の数値に対して5を掛けた答えを,"y"という

箱の中に格納する.''」ということになる.

  • 3行目では2行目で計算した"y"の値を表示する.
    • 前述の"helloworld"と違って,シングルクォーテーション (')で挟んでいないことに注意
  • 4行目では変数 x の値に5.0を乗じてzに代入する.つまり「''"x"という箱の中の数値に対して5.0を掛けた答えを,"z"と

いう箱の中に格納する.''」ということになる.

  • 5行目では4行目で計算した"z"の値を表示する.
    • 3行目とは違って,小数として表示される.
  • 変数名として使えない文字列があることにも注意(予約語という)
    • and , del , from , not , while , as , elif , global , or , with , assert , else , if , pass , yield , break ,

expect , import , print , class , exec , in , raise , continue , finally , is , return , def , for , lambda ,

try

  • 単体で使わなければ問題ない
    例:
    x_in=18
    y=x_in*5
    print y
    and_in=x_in*5.0
    print and_in

もっと演習

  1. 先程入力したプログラムの4行目の y をシングルクォーテーション (')で挟むとどうなるか.
  2. x ,y にそれぞれ適当な値を設定して, (xの二乗) + (yの二乗) を z に格納して表示してみる.計算結果が正しいか確認

する.

(3) 関数の理解

関数とは,ある入力が与えられたときに適切な処理をほどこして出力するコードのことである.例えば2個の数値の入力を足

し算した結果を返す関数 add(x,y) を定義すれば,その関数は何度でも使うことができる.
関数は,次の要素からなる.

  • 関数名: 関数の名前. if などの 予約語 と同じにしてはならない.
  • 引数: 関数に入力される変数.複数でもよい.
  • 戻り値: 関数が返す変数.
  • 本体: 入力に対して適当な処理を施し,必要に応じて return で値を返す処理を書く.''同一関数内に含める処理のイン

デントはすべて揃える.''

関数の定義は,

def 関数名(引数リスト):
	本体
	return 戻り値	#必要に応じて
#例:
def add(x,y):
	z = x + y
	return z

のように書く.定義した関数を使うには,式中で,

関数名(引数リスト)
#例:
r = add(3,5)

と書く.

例:二つの値を足し算する関数

def add(x,y):
	z = x + y
	return z
r = add(3,5)
print r

結果は,

8

となる.

演習

  1. test フォルダの中に,func.py という名前のファイルを作成し,エディタで開け.
  2. 以下のソースコードを入力せよ.
    コピー&ペーストせずに,キーボードで入力すること.
    def func(x,y):
    	z = (x*x) + (y*y)
    	return z
    
    r = func(1,2)
    print r
    
    r = func(3,4)
    print r
    
    r = func(5,6)
    print r
  3. 上記プログラムを実行せよ.
    • コマンドプロンプトにファイル名を入力して Enter キーを押す.
      func.py
    • 以下のような結果が表示されたらOK.
      5
      25
      61

解説

  • 引数 x,y に関して, (xの二乗) + (yの二乗) を計算して戻り値として返す関数.
  • 戻り値は r に格納される.

レベル2

(1) 条件分岐 (if) の理解

決められた条件によって処理を振り分けたいときには条件分岐を行う.条件分岐には if文,else文,elif文を用いる.
if文
 if文を使用すると,「もし,aaa ならば xxx する.」といった処理を記述できる.このとき,''同一の条件で行う処理の

インデントはすべて揃える.''

if 条件:
	条件に合致する場合の処理
	・・・
#例:
if x < 10:
	print 'X is small'

else文
 else文を使用すると「もし,aaa ならば xxx する.そうでなければ zzz する.」といった処理を記述できる.このとき,

同一の条件で行う処理のインデントはすべて揃える.

if 条件:
	条件に合致する場合に処理
	・・・
else:
	条件に合致しない場合のみ処理
	・・・
#例:
if x < 10:
	print 'X is small'
else:
	print 'X is large'

elif文
 elif文を使用すると,「もし, aaa ならば xxx する.もし,bbb ならば yyy する.いずれでもなければ zzz する.」と

いった処理を記述できる.このとき,同一の条件で行う処理のインデントはすべて揃える.

if 条件1:
	条件1に合致する場合の処理
	・・・
elif 条件2:
	条件1に合致しないが,条件2に合致する場合の処理
	・・・
else:
	いずれの条件にも合致しない場合の処理
	・・・
#例:
if x < 10:
	print 'small'
elif x < 20:
	print 'medium'
else:
	print 'large'

条件の書き方
 条件分岐で使用する記号の Python での表記を以下にまとめる.

意味Python での表記数学的な表記
等価==
不等価!=
小なり<<
小なりイコール<=
大なり>>
大なりイコール>=
括弧( )[ ],{ },( )
論理積and
論理和or

例えば,

if ( x>=10 and x<20 ) or y==1:

と表記すると「 x が10以上かつ20未満,もしくは y が1のときに処理する条件分岐」となる.

演習

  1. test フォルダの中に,if.py という名前のファイルを作成し,エディタで開け.
  2. 以下のソースコードを入力せよ.
    コピー&ペーストせずに,キーボードで入力すること.
    x = 10 + 5 * 2 - 3
    if x < 10:
    	print 'small'
    elif x < 20:
    	print 'medium'
    else:
    	print 'large'
  3. 上記プログラムを実行せよ.
    • コマンドプロンプトにファイル名を入力して Enter キーを押す.
      if.py
    • 以下のような結果が表示されたらOK.
      medium

解説

  • 1行目では変数 x に値を代入
  • 2行目からは条件分岐
    • x<10ならば"small"を表示
    • 10≦x<20ならば"medium"を表示
    • x≧20ならば"large"を表示

もっと演習

  1. xに入力する値を変更するとどうなるか?
  2. 10≦x<20の場合のみ"medium"の表示に加え x の値を表示する処理を追加せよ.
  3. xの値が0≦x<100の範囲外では,何も表示せずにプログラムを終了するようにプログラムを変更せよ.

(2) 繰り返し (while) の理解

決められた条件を満たす間,継続して繰り返し処理を行いたいときには while文を用いる.
while文は以下のように記述する.while内の処理のインデントは揃える.条件の書き方は条件分岐と同様.

while 条件:
	条件を満たす間に繰り返す処理
	・・・
#例:
x = 1
while x <= 10:
	print x
	x = x + 1

演習

  1. test フォルダの中に,while.py という名前のファイルを作成し,エディタで開け.
  2. 以下のソースコードを入力せよ.
    コピー&ペーストせずに,キーボードで入力すること.
    x = 1
    while x <= 10:
    	print x
    	x = x + 1
  3. 上記プログラムを実行せよ.
    • コマンドプロンプトにファイル名を入力して Enter キーを押す.
      while.py
    • 以下のような結果が表示されたらOK.
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

解説

  • 1行目では変数 x に初期値として1を代入
  • 2行目では繰り返しの条件を設定
    • x≦10の場合に,3,4行目の処理を繰り返し
    • ループ毎に x の値を表示し,1ずつ加算される.

もっと演習

  1. while文を用いて1から10の総和を出力するプログラムを作成せよ.(答え:55)
  2. while文を用いて10から15の総和を出力するプログラムを作成せよ.(答え:75)

(3) 繰り返し (for) の理解

決められた回数繰り返し処理を行いたいときには for 文を用いる.for 文は以下のように記述する.''for 内の処理のイン

デントは揃える.''

for 繰り返し変数 in range(初期値,最終値):
	繰り返す処理
	・・・

繰り返しは,初期値から最終値まで,繰り返し変数を変化させながら行われる.最終値で与えられた値には至らない.例えば

for i in range(1,10):
	print i

と記述すると,ループ毎に繰り返し変数 i に1~9の整数値が代入されて表示される.実行結果は以下のようになる.

1
2
3
4
5
6
7
8
9

演習

  1. test フォルダの中に,for.py という名前のファイルを作成し,エディタで開け.
  2. 以下のソースコードを入力せよ.
    コピー&ペーストせずに,キーボードで入力すること.
    for i in range(1,11):
    	x = i*i
    	print x
  3. 上記プログラムを実行せよ.
    • コマンドプロンプトにファイル名を入力して Enter キーを押す.
      for.py
    • 以下のような結果が表示されたらOK.
      1
      4
      9
      16
      25
      36
      49
      64
      81
      100

解説

  • 1行目は for 文を使った繰り返しを記述(変数 i を1から10まで1ずつ加算)
  • 2,3行目は繰り返し処理
    • ループ毎に"変数iの二乗"を計算する.xの値はループ毎に1ずつ加算される.
      • 2行目では,繰り返し変数 i の二乗を変数 x に代入
      • 3行目では,変数 x を表示

もっと演習

  1. "演習"で入力したプログラムの3行目のインデントを削除した場合の挙動を確認せよ.
  2. for 文を用いて10から15の総和を出力するプログラムを作成せよ.(答え:75)

レベル3

リストの理解

リストとは複数の要素(数値,文字列など)を順序付けて格納できるデータ型.例えば,

リスト名 = [要素1,要素2,要素3,・・・]
例:
L = ['a', 'b', 1, 2]

と表記すると,リスト L に文字列や数値が格納される.リストのそれぞれの要素には以下のようにインデックス(番号)が

付けられる.

インデックス0123
内容'a''b'12

プログラム中では,以下のようにインデックスを用いて各要素にアクセスできる.

リスト名[インデックス]

例:表示(通常の変数と同様)

print L[0]
print L[1]
print L[2]
print L[3]

例:代入(通常の変数と同様)

L[0] = 'A'
L[1] = 'B'
L[2] = 11
L[3] = 22

リストを一括で表示する場合には以下のように記述する.

print リスト名
例:
print L

以下のように,for 文を用いても各要素にアクセスできる.

for 変数名 in リスト名:
例:
for x in L:
	print x

また,リストには以下に示すような機能が用意されている.この他にも,様々な機能が用意されている.

  • リストの長さを取得
    len(リスト名)
    例:リスト L の長さを表示
    print len(L)
  • 指定したインデックスの要素を削除
    del リスト名[インデックス]
    例:L[1] の要素を削除
    del L[1]
  • リストの要素を最後尾に追加
    リスト名.append(追加する要素)
    例:リスト L の最後尾に10を追加
    L.append(10)
  • リストの途中に要素を挿入
    リスト名.insert(インデックス, 挿入する要素)
    例:L[2] に-1を挿入(元々のL[2]以降は後ろにずれる.)
    L.insert(2, -1)
  • リスト L の順番を逆転
    リスト名.reverse()
    例:
    L.reverse()

演習

前述のリストの機能を試す.

  1. test フォルダの中に,list.py という名前のファイルを作成し,エディタで開け.
  2. 以下のソースコードを入力せよ.
    コピー&ペーストせずに,キーボードで入力すること.
    print '* List L = '
    L = ['a', 'b', 1, 2]
    print L
    
    print '*List accsess'
    print '- L[0] :'
    print L[0]
    print '- L[1] :'
    print L[1]
    print '- L[2] :'
    print L[2]
    print '- L[3] :'
    print L[3]
    
    print '* List input'
    L[0] = 'A'
    L[1] = 'B'
    L[2] = 11
    L[3] = 22
    print L
    
    print '* List for'
    for x in L:
    	print x
    print L
    
    print '* List length'
    print len(L)
    
    print '* List delete'
    del L[1]
    print L
    
    print '* List append'
    L.append(10)
    print L
    
    print '* List insert'
    L.insert(2, -1)
    print L
    
    print '* List reverse'
    L.reverse()
    print L
  3. 上記プログラムを実行せよ.
    • コマンドプロンプトにファイル名を入力して Enter キーを押す.
      list.py
    • 以下のような結果が表示されたらOK.
      * List L =
      ['a', 'b', 1, 2]
      *List accsess
      - L[0] :
      a
      - L[1] :
      b
      - L[2] :
      1
      - L[3] :
      2
      * List input
      ['A', 'B', 11, 22]
      * List for
      A
      B
      11
      22
      ['A', 'B', 11, 22]
      * List length
      4
      * List delete
      ['A', 11, 22]
      * List append
      ['A', 11, 22, 10]
      * List insert
      ['A', 11, -1, 22, 10]
      * List reverse
      [10, 22, -1, 11, 'A']

解説

  • プログラム中には以下の機能が含まれている.
    • リストの定義( L として定義)
    • 各要素の参照
    • for 文による参照
    • リストの長さを取得
    • 指定した要素を削除
    • リストの最後尾に要素を追加
    • リストの途中に要素を挿入
    • リストの順番を逆転
  • それぞれの操作を行った後に実行結果を示している.

もっと演習

  • 他の機能を試してみる.
    • 例えば,
      print L.count(22)	#指定した値を持つ要素の数を数える
      print L.index(22)	#指定した値を持つ要素のインデックスを示す
      L.remove(22)	#指定した値を持つ要素を削除する
      を追加するとどうなるか?

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-08-05 (水) 15:12:25 (991d)