高校の授業のPython入門|情報Ⅰで使う書き方とつまずく所

当ページのリンクには広告が含まれています。

「授業でPythonが始まったけれど、どこまで覚えればいいの?」

「教科書どおりに書いたはずなのに、動かない……」

そんなふうに困っていませんか?この記事は、情報Ⅰの授業でPythonを習っている高校生、これから習う高校生に向けて書いています。

私はプログラミングの講師として、小学生から大学生まで教えてきました。講師としての視点に加えて、授業の範囲は教科書や文部科学省の公開資料を踏まえて整理しました。

先に結論を書くと、情報Ⅰで使うPythonの書き方は、種類でいえばそう多くありません。つまずく所も、だいたい決まっています。だから、文法を丸暗記するより、短いコードを自分で動かしてみるのが近道です。

この記事でわかること
  • 情報Ⅰの授業で出てくるPythonの範囲
  • 「書いたのに動かない」が起きやすい、Pythonならではの7つのつまずき
  • 自分で動かして練習できる、小さなプログラム3つ
  • 家でインストールなしにPythonを動かす方法と、教材の選び方
目次

情報Ⅰで出てくるPythonは、これだけ|範囲を先に知る

まずは、ゴールの大きさを知っておきましょう。

Pythonの入門書を開くと、分厚くて「これ全部覚えるの?」と思うかもしれません。でも、情報Ⅰの授業で使う範囲は、その一部です。教科書や文部科学省の教員向け教材で扱われている内容を見ると、土台になるのは、おおむね下の表の書き方です。

書き方何をする?1行の例授業のどこで出る?
print画面に表示するprint("こんにちは")いちばん最初
変数と計算値を入れておく・計算するx = 7 // 2プログラミングの基本
input と intキーボードから値を受け取る・数に直すn = int(input())プログラミングの基本
if・elif・else条件で処理を分けるif x > 5:プログラミングの基本
for・while同じ処理を繰り返すfor i in range(10):プログラミングの基本
リストたくさんの値を並べて扱う(配列)a = [3, 5, 2]基本〜探索・並べ替え
関数処理をまとめる・用意された機能を使うlen(a)/def 名前():基本〜応用
randomでたらめな数(乱数)を作るrandom.randint(1, 6)シミュレーション

プログラミングの世界ではどれも基本中の基本で、覚えるべきことです。Pythonに限らず他の言語でも出てくる概念・お作法です。(コードの書き方は言語によって若干異なりますが)

教科書や学校によって、扱う順番や深さは違います。グラフを描いたり、Webのサービスとつないだりする授業もありますが、どれもこの表の書き方の上に乗っています。

情報Ⅰで使うPythonの範囲マップ(表示・変数と計算・入力・条件分岐・繰り返し・リスト・関数・乱数と、授業の単元との対応)

入門書の中身を全部覚えなくて大丈夫です。まずは、この範囲を「自分で動かせる」状態にすること。それができれば、授業についていく土台は十分です。

なお、「=は入れる」「上から1行ずつ動く」「何周目に何が起きるか」といった、プログラムを読むときの考え方(お作法)は、高校の情報でプログラミングがわからない人へ|原因と立て直し方で例を使って書いています。この記事では、その次の段階、「Pythonという言語で書くときに、どこでつまずくか」に絞りますので、まだ順次処理(上から1行ずつ動く)などのルールがあいまいな方は上の記事を先に読んでください。

授業全体の流れ(仕組み → アルゴリズム → プログラミング → シミュレーション)を先に知りたい人は、高校情報Ⅰのプログラミング|授業で学ぶ内容と使う言語を整理をどうぞ。

【重要】Pythonでつまずきやすい所|「書いたのに動かない」の正体

ここからが本題です。Pythonを習い始めた人が「書いたのに動かない」「思っていた答えと違う」となる場所は、だいたい次の7つに集まります。

それぞれ、短いコードを用意しました。答えを見る前に「何が表示されるかな?」と一度考えてから読み進めてみてください。(もう分かっている所は、読み飛ばしても構いません)

① 字下げ(インデント)とコロン「:」に意味がある

まず一番やらかしがちなのが、これです。次のコードは動くでしょうか?

x = 10
if x > 5:
print("大きい")

答えは、動きません。IndentationError(字下げのエラー)が出ます。

Pythonでは、行の先頭の字下げが「ここまでが if の中ですよ」という意味を持っています。見た目を整えるための空白ではないんですね。正しくはこうです。

x = 10
if x > 5:
    print("大きい")

字下げは半角スペース4つがよく使われます(使う環境によっては2つのこともあります)。大事なのは、同じかたまりの中で字下げをそろえることです。もう1つ、if x > 5 の最後のコロン「:」を忘れても動きません。if・for・while・def の行の最後には、必ずコロンが付きます。セットで覚えておきましょう。

② 「=」は入れる、「==」は比べる

プログラミングの「=」は「右の値を左の変数に入れる」という意味でした。では、「x が 3 と等しいなら」と書きたいときは?

x = 3
if x == 3:
    print("3です")

このように、比べるときは「==」(イコール2つ)を使います。if x = 3: と書くとエラーになります。「入れる」と「比べる」で記号が違う、と覚えておけば大丈夫です。

③ range(1, 6) は 6 を含まない

次のコードは、何を表示するでしょう?

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

1、2、3、4、5 です。6 は表示されません。range は「始まりの数から、終わりの数の1つ手前まで」というルールなんです。

ちなみに range(5) と1つだけ書くと、0、1、2、3、4 の5回になります。0から始まる、というのもつまずきやすいポイントですね。「何回まわるか」と「i に何が入るか」を、分けて考えるのがコツです。

④ リストの番号は 0 から

fruits = ["りんご", "みかん", "ぶどう"]
print(fruits[1])

「りんご」と思った人、多いと思います。答えは「みかん」です。

Pythonのリストは、先頭が0番から数えます。りんごが0番、みかんが1番、ぶどうが2番。だから3つしかないリストで fruits[3] と書くと、「そんな番号はありません」という IndexError が出ます。

ただし、共通テストの問題では、番号が0から始まるか1から始まるかは問題文で示されます。Pythonのルールのまま読まずに、問題文を確認してくださいね(試験の読み方は後半で触れます)。

⑤ input() で受け取った数字は「文字」。計算するなら int()

キーボードから2つの数を入れて、足し算するプログラムを作ったとします。

a = input("1つ目の数:")
b = input("2つ目の数:")
print(a + b)

5 と 5 を入れると……表示は 10 ではなく 55 です。

input() で受け取った値は、見た目が数字でも「文字(文字列)」として扱われます。文字の「5」と「5」をつなげたので「55」。計算に使うなら、int() で数に直します。

a = int(input("1つ目の数:"))
b = int(input("2つ目の数:"))
print(a + b)

これで 10 になります。エラーが出ないぶん気づきにくい、ちょっと意地悪なつまずきです。

⑥ 全角のスペース・記号で止まる

日本語入力をオンにしたままコードを打つと、カッコやスペースが全角になってしまうことがあります。これもよくやりがちです。しかも気づきにくい。

print("こんにちは")

ぱっと見は正しそうですが、カッコが全角なので SyntaxError(書き方のエラー)になります。全角スペースも同じです。目で見ても気づきにくいので、「どう見ても合っているのに動かない」ときは、まず全角を疑ってみてください。

“”の中の文字(表示したい日本語)は全角で大丈夫です。全角がダメなのは、それ以外の部分です。

⑦ 大文字・小文字、スペルの1文字違い

このミスも多いですね。

Print("こんにちは")

先頭が大文字の Print になっているだけで、NameError(そんな名前は知りません)になります。Pythonは大文字と小文字を別の文字として扱うからです。変数名も同じで、score と Score は別の変数になります。

エラーが出たら、まず2か所だけ見る
①何行目でエラーになったか ②最後の1行の英語(エラーの種類)
SyntaxError=書き方の決まり違い/IndentationError=字下げ/NameError=名前が見つからない(スペル・大文字小文字)/TypeError=文字と数を混ぜて計算した、など/IndexError=リストの番号が範囲外。
※表示の細かい言い回しは、Pythonのバージョンや使う環境で少し変わります。

エラーの英語を見ると、それだけで嫌になる気持ちはよく分かります。でも、エラーは「ここが違うよ」と教えてくれる手がかりです。何行目か、何の種類か。この2つを見るだけで、原因はかなり絞れます。

つまずく所は、だいたい決まっています。字下げとコロン、=と==、rangeの終わり、0番から、inputは文字、全角、大文字小文字。この7つを知っているだけで、「なぜか動かない」はぐっと減るはずです。

自分で動かしてみよう|情報Ⅰらしい小さなプログラム3つ

つまずく所が分かったら、実際に動かしてみるのがいちばんです。情報Ⅰの授業でよく出てくる「条件分岐」「シミュレーション」「探索」に1つずつ対応した、小さなプログラムを用意しました(どれもこの記事のために作った例で、教科書や試験の問題とは別物です)。

コピーして動かすだけでなく、数字を変えて何度も動かしてみるのが練習になります。

練習1:気温を入れると、服装のアドバイスが出る(条件分岐)

kion = int(input("今日の気温は?:"))
if kion >= 25:
    print("半袖で大丈夫")
elif kion >= 15:
    print("長袖がちょうどいい")
else:
    print("上着を持っていこう")

20 を入れたら何が表示されるか、先に考えてから動かしてみてください。if の条件は上から順に調べて、当てはまった所で止まります。だから 30 を入れたときに「長袖」は出ないんですね。

ここを変えてみよう:25 や 15 という境目の数を変える/「10 未満なら『コートが必要』」の条件を1つ足してみる。

練習2:サイコロを1,000回振って、目の出方を数える(シミュレーション)

import random

kaisu = [0, 0, 0, 0, 0, 0]
for i in range(1000):
    me = random.randint(1, 6)
    kaisu[me - 1] = kaisu[me - 1] + 1
print(kaisu)

1〜6 の目が、それぞれ何回出たかを数えるプログラムです。random.randint(1, 6) は、1 から 6 までの数をでたらめに1つ作ります(range と違って、6 も入ります)。

ポイントは kaisu[me - 1]。リストの番号は0からなので、1の目は0番、6の目は5番に数えています。さっきの④がここで効いてきます。

動かすたびに結果が少しずつ変わります。手でやったら何時間もかかる1,000回が、一瞬で終わる。これが授業でやる「シミュレーション」の入口です。

ここを変えてみよう:1000 を 10 や 100000 にして、目の出方のばらつきがどう変わるか見てみる。

練習3:いちばん大きい数を探す(探索の入口)

kion = [18, 23, 21, 26, 19]
saidai = kion[0]
for t in kion:
    if t > saidai:
        saidai = t
print(saidai)

5日分の気温のうち、いちばん高い日を探すプログラムです。最初の値を「仮のいちばん」にしておいて、それより大きいものが出てきたら入れ替える。答えは 26 です。

実は Python には max(kion) という、1行で最大値を出してくれる機能もあります。でも、授業で考えたいのは「コンピュータがどういう手順で探しているのか」の方。だからあえて手順を書いてみる、という練習です。

ここを変えてみよう:「いちばん小さい数」を探すように直す(どこを1文字変えればいい?)。

3つとも、1行ずつ「なぜそう動くのか」を自分の言葉で言えたら合格です。動いたからOK、ではなく、説明できるまで。ここが一番大事なところです。

窓辺の小さなテーブルに開いて置かれたノート

Pythonを家で動かす方法|インストールなしで始められる

「家でも練習したいけど、何を入れればいいの?」という人へ。

まず確かめてほしいのは、学校で使っている環境が、家からも開けるかどうかです。ブラウザで動く教材や、学校のアカウントで使うサービスなら、家のパソコンやタブレットからそのまま開けることもあります。先生に聞くのがいちばん確実です(学校のアカウントで使うサービスは、学校のルールに従ってくださいね)。

それ以外にも、ブラウザだけで無料で動かせるものがいくつかあります。

環境費用必要なもの向いている使い方
学校で使っている環境学校による学校のアカウントなど授業の続きをそのまま復習する
Google Colaboratory無料で使えるGoogle アカウント・ブラウザこの記事のコードを貼って動かす。インストール不要
ハイスクールPython無料ブラウザ・Google アカウント(実行は Google Colaboratory)高校生向けの教材を、動画と一緒に順番に進める
パソコンにPythonを入れる無料パソコン慣れてから。最初は必須ではない

2026年10月時点の各サービスの公式情報をもとに整理しています。

Google Colaboratory(Colab)は、Google が提供しているブラウザで Python を書いて動かせるサービスです。この記事のコードも、コピーして貼り付ければそのまま動きます。ただし、input() を使う練習1は、実行すると入力欄が出るので、そこに数字を入れて Enter を押してください。

ハイスクールPythonは、高校生向けに作られた無料の Python 教材です。情報Ⅰにも対応していると書かれていて、文章と動画を見ながら、Colab で実際に動かして進める形になっています。

「タブレットやスマホだけでもできる?」という質問もありそうですね。ブラウザで動くものなら、タブレットでも練習はできます。スマホで動かせる学習サービスも出てきています。ただ、コードを打つ量が増えてくると、キーボードがあった方がだいぶ楽です。

教材の選び方|Web教材・動画・本をどう使い分ける?

Python の教材は、探すとたくさん出てきます。全部やる必要はなくて、目的に合わせて1つ選べば十分です。

授業の復習がしたいなら、動画。教科書に沿った情報Ⅰの解説動画が YouTube にいくつもあります。ただ、何時間もある長いシリーズもあるので、つまずいた所だけ探して見る使い方がおすすめです。

手を動かしながら進めたいなら、Web 教材。上で紹介したハイスクールPython のように、読んで・動かして・課題を解く、を順番にできるものが向いています。

一通りを手元でまとめて見たいなら、本。画面を行ったり来たりするより、紙で全体を見渡したい人もいますよね。そういう人は、授業の範囲に近い入門書を1冊持っておくと安心です。

高校生向けの Python の本を探してみると、高校の先生が「情報Ⅰの演習」「共通テストに向けた考える力」を意識して書いた入門書がありました。この記事で紹介した Colab を使う前提なので、家での練習とそのままつながります。

書籍(楽天ブックス)

授業のPythonを、手元の1冊で一通り

『中高生からのPythonプログラミング』(カットシステム)。Google Colaboratory を使って、Python の基本を問題を解きながら学べる入門書です。

  • 高校情報Ⅰの演習用・共通テストに向けた思考力を意識した内容
  • if文・for文・while文・リスト・関数の基本の問題が中心
  • 基本は7〜10時間ほどで一通り学べる構成
書籍を見る

税込1,760円(2026年10月時点)。

情報Ⅰ全体(プログラミング以外の分野も含めて)の参考書や、共通テスト対策の問題集を探している人は、情報Ⅰの参考書・問題集の選び方|目的と経験別に講師が整理にまとめています。

授業のPythonと共通テストの関係|書き方を暗記しなくていい

「共通テストのために、Python の書き方を覚えておかないと」と思っている人もいるかもしれません。

でも、共通テストの「情報」のプログラミングの問題は、Python ではなく、大学入試センターが定めた共通テスト用の独自の表記で出題されます。どの言語で習った人でも読めるように作られています。

だから、Python の書き方そのものを暗記する必要はありません。ただ、Python で実際に動かして「なぜそう動くか」を理解した経験は、表記が変わってもそのまま読む力になります。range の数え方やリストの番号のように、表記ごとに違うルールだけ気をつければ大丈夫です。

試験の表記の読み方と勉強の順番は情報Ⅰの共通テスト対策|大問の中身と勉強の順番を講師が整理に、問題の解き方(1行ずつ追う練習)は高校情報のプログラミング問題の解き方|4つの型と練習問題に書いています。

講師の見方|Pythonと向き合うときに大事なこと

最後に、少しだけ私の考えを。

Python は、私がメインで教えてきた言語ではありません。生徒と一緒に触りをやったぐらいの知識です。しかしScratch のようにブロックを並べるのと違って、処理の組み立てを自分で考える場面が一気に増えるので、頭をすごく使う言語だなと感じます。最初に難しく感じるのは、当たり前でしょう。

わからないまま、読み飛ばさない

とにかくダメなのは、わからないまま読み飛ばすこと。あたりまえのことですが、これが本当に大事です。

エラーが出たら、何行目か、何のエラーかを見る。動いたコードも、1行ずつ「ここで何が起きているか」を確かめる。プログラミングは理解の積み重ねなので、1つ分かると次が分かります。逆も然り。

階段を一段ずつ上るように進めれば、ちゃんと読めるようになります。

もしAIに聞くなら「なぜそうなるのか」まで

エラーが出たら AI にすぐ聞く、という人も多くなってきているのかもしれません。確かに、効率的ですよね。

ただ、答えが出たからOK、直ったからOK、で終わらせるのはもったいないです。AI に聞くのは構いませんが、最短距離を取るためではなく、学習のためであることを忘れないでください。「私は Python を勉強中です。答えだけでなく、なぜそうなるのかも説明して」と、自分の力を育てる目的も一緒に伝えるのがおすすめです。

※AIのサービスには年齢条件があるものもあります。使うときは各サービスの利用条件を確かめ、必要なら保護者と一緒に使ってください。

「作りたいもの」が出てきたら、伸びるチャンス

授業の練習をしているうちに、「これを使って、こんなものを作ってみたい」と思うことがあるかもしれません。それが出てきたら、一番伸びるタイミングです。授業の外での始め方は、高校生のプログラミング、何から始める?授業・独学・進路の地図にまとめています。

Python で大事なのは、「覚えている」ではなく「自分で動かして、説明できる」こと。授業の範囲なら、そこまで行ければ十分だと私は思っています。

よくある質問

授業より先に、Python を予習しておいた方がいいですか?

必須ではありません。授業は、Python を初めて習う人がいる前提で進むのがふつうです。ただ、この記事の最初の表の範囲を一度ざっと動かしておくと、授業で「見たことある」状態になるので、気持ちはだいぶ楽になると思います。

中学生のうちにPythonに触れておきたい人は、Scratchからの移り方と始め方をこちらにまとめています。→ 中学生にPythonは早い?Scratchからの移り方と始め方

学校の授業が JavaScript(や VBA)でした。この記事は役に立ちますか?

考え方(変数・条件分岐・繰り返し・配列)は同じなので、練習3つの「何をしているか」はそのまま役に立ちます。ただ、書き方の決まりは言語ごとに違います。言語ごとの特徴は高校情報Ⅰのプログラミング|授業で学ぶ内容と使う言語を整理で比べています。

一通り覚えるのに、どれくらいかかりますか?

人によるので、一概には言えません。目安を作るなら、最初の表の8つを「1日1つ、短いコードを書いて動かす」ペースで進めると、1〜2週間で一周できる量です。一周したら、練習3つを自分で少しずつ書き換えてみてください。

Python を覚えれば、ほかの言語も使えるようになりますか?

書き方は言語ごとに違うので、そのまま使えるわけではありません。でも、変数・条件分岐・繰り返しといったお作法は、ほとんどの言語で共通です。1つの言語でしっかり身につけた人は、2つ目の言語に移るのが速いことが多いです。

Mac やタブレットでもできますか?

Google Colaboratory のようにブラウザで動くものなら、Mac でも Windows でも使えます。Google アカウントがあれば始められます。タブレットでも練習はできますが、コードを打つ量が増えてくると、キーボードがあった方がだいぶ楽です。

まとめ|範囲は多くない。つまずく所を知って、自分で動かす

情報Ⅰの授業で使う Python は、表示・変数と計算・入力・条件分岐・繰り返し・リスト・関数・乱数くらいの範囲です。入門書を全部覚える必要はありません。

つまずく所も、字下げとコロン、= と ==、range の終わり、0番から、input は文字、全角、大文字小文字、とだいたい決まっています。これを知っているだけで、「なぜか動かない」はかなり減るはずです。

まずは Colab などで、練習3つを動かしてみてください。そして、1行ずつ「なぜそう動くか」を言えるところまで。それができれば、授業も、その先の共通テストも、ちゃんと読めるようになります。

プログラムを読むときの考え方(お作法)をもう一度確かめたい人は、高校の情報でプログラミングがわからない人へもあわせてどうぞ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次