Python 処理の流れを学ぶためのプログラム例 はじめに

3つの制御構造の学習 はじめに

 処理の流れは「順次」「分岐」「反復」の3つの構造の組み合わせで構成されます。
 Pythonプログラミングの練習として,実際にソースコードを記述して制御構造を学習しましょう。

  • 順次 1 つ 1 つの処理を順番に行う
  • 分岐 ある条件に応じて異なる処理を実行する
  • 反復 ある条件が満たされている間はその処理を繰り返し実行する

 

  図表引用元
  高等学校情報科「情報Ⅰ」教員研修用教材(本編):文部科学省
  第3章 コンピュータとプログラミング

プログラミングでよく使う記号の入力について

 キーの左上の記号を入力するときには,Shiftキーを押しながらキーを押して入力します。
 
 ※Shiftキーはキーボード右側Enterキーの下にもあります。押しやすい方を使いましょう。

ソースコード印刷用ファイル

 順次,分岐,反復,配列,関数のソースコード例です。
 Pythonプログラミング練習1_基本.pdf - Google ドライブ



順次処理

処理の流れ

 ソースコードの上の行から下の行へ順に実行されていきます。画面に文字を表示させる命令 print()関数 を使って確かめてみましょう。
 (プログラムでの画面への表示は「出力」とか「標準出力」などと呼ばれることがあります)

print("==== 1-1 ====")
a = 1 + 2
print(a)
a = a + 3 + 4
print(a)

実行結果

==== 1-1 ====
3
10

 print()関数はカッコの中に指定したもの(引数とよびます)を画面に表示します。
 1行目の print("==== 1-1 ====") が実行されたことでカッコの中の==== 1-1 ====が画面に表示されました。両端の「"」二重引用符(ダブルクォーテーション)は表示されませんでしたが,これはソースコード上で「"」で囲まれたものを文字列として扱うという文法によるものです。「"」で囲まれた文字列の中のイコールは今回のプログラミング練習で表示場所をわかりやすくする目的の単なる模様の文字です。

 2行目の「a = 1 + 2」に登場するイコールは,数学の等号とは使われ方が異なります。Pythonで「=」は代入演算子とよび,右辺の式の結果を左辺の変数に代入する処理を行います。ソースコードを読み解くときは右辺を先に読んで,右辺の結果が左辺の変数に格納される矢印をイメージできると理解しやすいかもしれません)
 
 「a=a+3+4」のように,右辺と左辺に同じ変数がある代入処理がわかるようになると,制御構造の「反復」でよく使われるループカウンタなどをプログラミングできるようになりますので,覚えておいてください。


 実行結果が,どこの処理の出力かわかるように工夫してみましょう。

print("==== 1-1 ====")
a = 1 + 2
print("1st a =",a)
a = a + 3 + 4
print("2nd a =",a)

実行結果

==== 1-1 ====
1st a = 3
2nd a = 10


 print()関数の引数に色々な変数を指定してみましょう。

print("==== 1-2 ====")
a = 10
b = 20
c = "hello"
print(a, b, c)

実行結果

==== 1-2 ====
10 20 hello


 print()関数の引数に式を書くこともできます。演算子を使って式の計算結果を表示してみましょう。

print("==== 1-3 ====")
a = 10
b = 20
print("a+b=", a+b)
c = "10"
d = "20"
print("c+d=", c+d)

実行結果

==== 1-3 ====
a+b= 30
c+d= 1020

 a+bは期待通りの加算結果 30 が表示されました。c+dの結果1020は予想外かもしれません。
 変数が数値の場合と文字列の場合で+演算子の処理内容が変わります。ダブルクォーテーションで囲まれた"10"と"20"は文字列として扱われます。文字列同士は+演算子で連結することができます。

ユーザからの入力を受け付ける

 input()関数を使うと,プログラム実行時にユーザからの入力を受け取って処理することができます。(プログラム作成時には決められない値でも,変数名を指定しておけばその後の処理を記述しておくことができます)

print("==== 1-4 ====")
b = input("底辺を入力 >")
print(b,"が入力されました")

 【注意】日本語入力後の「"」が全角になっているとプログラムは期待通りに動きません。「半角/全角」キーを押して半角英数入力に戻すことを忘れずに。(あ→A)

実行結果

==== 1-4 ====
底辺を入力 >

 実行するとシェルでユーザーからの入力待ちになり,そこで処理が止まっています。IDLEシェルの入力待ちの行をクリックして,10を入力してEnterキーを押してみましょう。

==== 1-4 ====
底辺を入力 >10
10 が入力されました

 ユーザからの入力後,次の行のprint()関数が呼び出され画面表示が行われました。順次処理が正しく動いています。


 入力した数値で三角形の面積を計算するプログラムを作ってみましょう。

b = input("base=")
b = float(b)
h = 7
area = b * h / 2 
print(area)

実行結果

base=-10
−35.0

 input()関数で受け取った値は文字列なので,そのまま計算することができません。float()関数で浮動小数点数に変換してから計算を行います。

 三角形の面積では負の値を表示したくないので,分岐の学習で処理を作ってみましょう。