プログラミングでは、コンピュータに実行してほしい処理を、順序立てて書きます。
一つ一つの命令は短くても、それらを組み合わせることで、計算をしたり、表示を変えたり、複数のデータを処理したりできます。
情報Ⅰのプログラミングでは、特定の命令の形だけを覚えるのではなく、処理がどの順番で実行されるかを考えることが大切です。
また、条件によって処理が変わる場合や、同じ処理を何度も繰り返す場合には、プログラムの流れを正しく追う必要があります。
さらに、複数の値をまとめて扱う場面では、データがどの順番で保存され、どのように取り出されるかを確認することが重要です。
この記事では、print、for、while、if、リストを例にしながら、Pythonの基本について学びます。
順次処理
順次処理とは何か
順次処理とは、プログラムに書かれた命令を、原則として上から順番に実行する処理です。
たとえば、文字を表示する命令を上から順に書くと、その順番で画面に表示されます。
print("Hello")
print("World")
このプログラムでは、最初にHelloが表示されます。
次にWorldが表示されます。
順次処理では、命令の順番を入れ替えると、実行結果も変わることがあります。
print関数で文字を表示する
Pythonでは、文字や数値を表示するときにprintを使います。
print("こんにちは")
このように書くと、画面にこんにちはと表示されます。
printのかっこの中に、表示したい内容を書きます。
文字列は、引用符で囲みます。
プログラムは上から順に実行される
次の例を考えます。
a = 10
b = 20
print(a + b)
このプログラムでは、まずaに10が代入されます。
次にbに20が代入されます。
最後にa + bの結果である30が表示されます。
aとbは変数です。変数とは、データを一時的に保存しておくために名前を付けて扱うものです。
実際には、コンピュータの記憶領域に値を対応させて扱います。
繰り返し処理
for文の基本
for文は、決まった回数だけ処理を繰り返すときによく使います。
Pythonでは、次のように書きます。
for i in range(10):
print("Hello")
このプログラムでは、Helloが10回表示されます。
range(10)は、0から9までの10個の値を順に取り出す働きをします。
そのため、変数iには、0、1、2、3、4、5、6、7、8、9が順に入ります。
rangeを使った繰り返し
rangeは、繰り返しの回数を指定するときに使われます。
for i in range(5):
print(i)
このプログラムの実行結果は、0から4までです。
0
1
2
3
4
ここで注意する点は、range(5)の最後の値が5ではないことです。range(5)は、0以上5未満の整数を順に扱います。
同じ処理を何度も書かない考え方
繰り返し処理を使うと、同じ命令を何度も書かずにすみます。
たとえば、同じ文字を10回表示したいとき、printを10行書くよりも、for文を使う方が簡潔です。
プログラムでは、同じ処理をまとめて書くことで、読みやすく、修正しやすい手順にできます。
条件分岐
if文の基本
条件分岐とは、条件が成り立つかどうかによって、実行する処理を変えることです。
Pythonでは、条件分岐にifを使います。
a = int(input("数値を入力してください"))
if a == 1:
print("Hello")
このプログラムでは、入力された値が1のときだけ、Helloと表示されます。
input は、キーボードから入力された内容を受け取ります。
ただし、inputで受け取った値は文字列として扱われます。
数値として比較したい場合は、intを使って整数に変換します。
a == 1 は、変数aの値が1と等しいかどうかを調べる条件式です。
elseを使った処理の分け方
条件が成り立たない場合の処理を書くには、elseを使います。
a = int(input("数値を入力してください"))
if a == 1:
print("Hello")
else:
print("Another")
このプログラムでは、入力された値が1ならHello と表示されます。
それ以外ならAnotherと表示されます。
| 書き方 | 意味 |
|---|---|
| if | 条件が成り立つときの処理を書く |
| else | 条件が成り立たないときの処理を書く |
| == | 左右の値が等しいかを調べる |
入力値によって表示を変える例
次のように、入力された数値によって表示を変えることができます。
a = int(input("数値を入力してください"))
if a == 1:
print("Hello")
else:
print("Another")
1 と "1" は見た目が似ていますが、数値と文字列でデータの種類が異なります。
数値として計算や比較をする場合は、必要に応じて int で変換します。
条件による繰り返し処理
while文の基本
while文は、条件が成り立っている間、処理を繰り返す命令です。
a = 1
while a <= 5:
print(a)
a = a + 1
このプログラムでは、1から5までの数が順に表示されます。
最初にaは1です。
a <= 5が成り立つ間、print(a)とa = a + 1が繰り返されます。
a = a + 1の結果が5になると、a <= 5が成り立たなくなるため、繰り返しが終わります。
条件が成り立つ間だけ処理を続ける
while文では、条件式の結果が重要です。
条件式が真であれば、繰り返しを続けます。
条件式が偽になると、繰り返しを終了します。
a = 1
while a <= 3:
print("Hello")
a = a + 1
この例では、Helloが3回表示されます。
aの値は、1、2、3と変化します。
その後、aが4になると、a <= 3が成り立たなくなるため、繰り返しが終わります。
無限ループに注意する
while文では、条件がいつまでも成り立つと、処理が終わらなくなることがあります。
これを無限ループといいます。
a = 1
while a <= 5:
print(a)
このプログラムでは、aの値が変化しません。
そのため、a <= 5がずっと成り立ち、繰り返しが終わりません。
while文では、繰り返しの中で条件に関係する変数がどのように変化するかを必ず確認しましょう。
繰り返しで合計を求める
合計を保存する変数を用意する
複数の数の合計を求めるときは、合計を保存する変数を用意します。
たとえば、1から10までの合計を求めるには、次のように書けます。
sum = 0
for i in range(10):
sum = sum + i + 1
print(sum)
このプログラムでは、最初にsumに0を代入します。
その後、iに0から9までの値を順に入れます。
繰り返しのたびに、sumにi + 1を加えます。
最後に、合計が表示されます。
変数の値の変化を表で確認する
合計を求めるプログラムでは、変数の値が少しずつ変わります。
| 繰り返し | i の値 | 加える値 | sum の値 |
|---|---|---|---|
| 開始前 | なし | なし | 0 |
| 1回目 | 0 | 1 | 1 |
| 2回目 | 1 | 2 | 3 |
| 3回目 | 2 | 3 | 6 |
| 4回目 | 3 | 4 | 10 |
このように、sum = sum + i + 1は、現在のsumに i + 1を加えて、新しい sumとして保存する処理です。
数学の等式ではなく、代入の命令として読む必要があります。
sum = sum + i + 1 は、右辺を先に計算し、その結果を左辺の変数 sum に代入します。
プログラムの代入は、数学の等号とは意味が異なります。
printの位置に注意する
print(sum)が繰り返しの外にある場合、最後の合計だけが表示されます。
sum = 0
for i in range(10):
sum = sum + i + 1
print(sum)
一方でprint(sum)が繰り返しの中にある場合、途中の合計が毎回表示されます。
sum = 0
for i in range(10):
sum = sum + i + 1
print(sum)
Pythonでは、インデントによって処理のまとまりが決まります。
そのため、表示する命令の位置によって実行結果が変わります。
合計を求めるプログラムでは、合計を表示する命令が繰り返しの中にあるか、外にあるかを必ず確認しましょう。
リストを使う
リストとは何か
リストとは、複数の値を順番にまとめて扱うためのデータの集まりです。
たとえば、複数の点数を1つずつ別の変数に入れると、変数が多くなって管理しにくくなります。
リストを使うと、複数の値を1つのまとまりとして扱えます。
scores = [80, 90, 70]
print(scores)
このプログラムでは、80、90、70という3つの値を、scoresという1つのリストとして扱っています。
リストは、複数のデータを順番に保存し、必要な位置の値を取り出せる仕組みです。
リストに値を追加する
Pythonでは、空のリストを用意してから、値を追加できます。
scores = []
scores.append(80)
scores.append(90)
scores.append(70)
print(scores)
このプログラムでは、最初に空のリストscoresを作ります。
その後、appendを使って、80、90、70を順番に追加します。
最後に、リスト全体を表示します。
append は、リストの最後に新しい値を追加する命令です。
リストの値を取り出す
リストの中の値は、位置を指定して取り出せます。
この位置を添字またはインデックスといいます。
Pythonでは、最初の位置は0です。
scores = []
scores.append(80)
scores.append(90)
scores.append(70)
print(scores[0])
print(scores[1])
print(scores[2])
このプログラムでは、scores[0]が80、scores[1]が90、scores[2]が70を表します。
| 指定 | 取り出される値 |
|---|---|
| scores[0] | 80 |
| scores[1] | 90 |
| scores[2] | 70 |
Pythonのリストでは、最初の位置を1ではなく0として数えます。
ここを間違えると、取り出す値がずれることがあります。
リストと繰り返しを組み合わせる
リストは、繰り返し処理と組み合わせると便利です。
たとえば、リストに入っている点数を順番に取り出して表示できます。
scores = []
scores.append(80)
scores.append(90)
scores.append(70)
for score in scores:
print(score)
このプログラムでは、リスト scoresの中の値が1つずつ score に入り、順番に表示されます。
リストの合計を求める
リストの値を順番に取り出して、合計を求めることもできます。
scores = []
scores.append(80)
scores.append(90)
scores.append(70)
total = 0
for score in scores:
total = total + score
print(total)
このプログラムでは、最初にtotalを0にします。
その後、リストの値を1つずつ取り出し、totalに加えていきます。
最後に、合計が表示されます。
| 繰り返し | score の値 | total の値 |
|---|---|---|
| 開始前 | なし | 0 |
| 1回目 | 80 | 80 |
| 2回目 | 90 | 170 |
| 3回目 | 70 | 240 |
リストを読むときの注意点
リストを使ったプログラムを読むときは、次の点を確認します。
- リストにはどのような値が入っているか。
- 値はどの順番で入っているか。
- どの位置の値を取り出しているか。
- 繰り返しでどの値が順番に使われるか。
- 合計や個数を求めている場合、変数の値がどのように変化するか。
リストは、データをまとめて扱うための基本的な考え方です。
情報Ⅰのプログラミングでは、リストと繰り返しを組み合わせて、複数のデータを処理する流れを読み取ることが大切です。
PythonとJavaScriptの書き方の違い
変数の書き方
Pythonでは、変数を使うときに特別な宣言をしないで書けます。
a = 10
JavaScriptでは、変数を使うときにletなどを使って宣言します。
let a = 10;
どちらも、変数 a に10を代入するという意味です。
繰り返し処理の書き方
Pythonのfor文は、次のように書きます。
for i in range(10):
print(i)
JavaScriptのfor文は、次のように書きます。
for (let i = 0; i < 10; i++) {
document.write(i);
}
Pythonでは、インデントによって繰り返す範囲を表します。
インデントとは、文頭にあるスペースのことです。
JavaScriptでは、波かっこで繰り返す範囲を表します。
条件分岐の書き方
Pythonのif文は、次のように書きます。
if a == 1:
print("Hello")
else:
print("Another")
JavaScriptのif文は、次のように書きます。
if (a == 1) {
document.write("Hello");
} else {
document.write("Another");
}
どちらも、条件が成り立つときと、成り立たないときで処理を分けています。
| 内容 | Python | JavaScript |
|---|---|---|
| 表示 | document.write | |
| 変数 | a = 10 | let a = 10; |
| 範囲 | インデント | 波かっこ |
| 条件分岐 | if と else | if と else |
Pythonではインデントが文法上の意味を持ちます。
字下げがずれると、繰り返しや条件分岐の範囲が変わることがあります。
プログラムを読むときの注意点
変数の値の変化を追う
プログラムを読むときは、変数の値がどのタイミングで変化するかを追うことが大切です。
特に、繰り返し処理では、同じ命令が何度も実行されます。
そのため、1回目、2回目、3回目のように、変数の値を表にして整理すると理解しやすくなります。
インデントや括弧に注意する
Pythonでは、インデントによって処理のまとまりを表します。
for i in range(3):
print(i)
print("終わり")
この場合、print(i) は繰り返しの中で実行されます。
print("終わり") は、繰り返しが終わった後に1回だけ実行されます。
実行結果から処理の流れを確認する
プログラムは、書かれた内容を読むだけでなく、実行結果から処理の流れを確認することも大切です。
期待した結果にならないときは、次の点を確認します。
- 条件式は正しいか。
- 繰り返しの回数は正しいか。
- 変数の初期値は正しいか。
- 変数の更新は行われているか。
- 表示する命令の位置は正しいか。
- リストの添字は正しいか。
共通テストで問われやすい観点
情報Ⅰのプログラミングでは、特定のプログラミング言語の暗記だけでなく、処理の流れを読み取る力が重要です。
特に、次のような観点が問われやすいです。
- 変数の値がどのように変化するか。
- 条件式が真になる場合と偽になる場合を判断できるか。
- 繰り返しが何回実行されるか。
- 合計や個数を求める処理を読み取れるか。
- リストの値がどの順番で処理されるか。
- 添字を使って取り出される値を判断できるか。
- プログラムの実行結果を選べるか。
- 誤りのあるプログラムを修正できるか。
プログラム問題では、頭の中だけで考えず、変数やリストの値を表にして追うことが有効です。
確認問題
【問題1】次の2つのプログラムについて、正しい説明はどれですか。
プログラムA
sum = 0
for i in range(3):
sum = sum + i + 1
print(sum)
プログラムB
sum = 0
for i in range(3):
sum = sum + i + 1
print(sum)
1.AもBもエラーになる
2.Aは途中の合計を毎回表示し、Bは最後の合計だけ表示する
3.Aは最後の合計だけ表示し、Bは途中の合計を毎回表示する
4.AもBも同じ結果になる
【問題2】次のプログラムに問題がある理由として、正しいものはどれか。
a = 1
while a <= 5:
print(a)
1.a <= 5 は条件式ではない
2.a の値が変化しないため、条件がずっと成り立つ
3.print(a) が使えない
4.while 文では数値を扱えない
答え:【問題1】2.Aは途中の合計を毎回表示し、Bは最後の合計だけ表示する 【問題2】2.a の値が変化しないため、条件がずっと成り立つ
まとめ
プログラムの基本は、順次処理、分岐処理、反復処理です。
順次処理では、命令が上から順に実行されます。
分岐処理では、条件によって実行する処理が変わります。
反復処理では、同じ処理を必要な回数だけ繰り返します。
合計を求めるプログラムでは、合計を保存する変数を用意し、繰り返しの中で値を加えていきます。
リストを使うと、複数の値を1つのまとまりとして扱えます。
そして、これらの処理は、print文、for文、while文、if文などを用いて表現されます。
Pythonでは、インデントが処理のまとまりを表すため、字下げにも注意が必要です。
情報Ⅰのプログラミングでは、文法を覚えるだけでなく、変数の変化、条件の判定、繰り返しの回数、リストの値の扱いを正確に読み取ることが大切です。
