初めて訪れた方は学習ガイドへ。例題の結果を予想してから実行し、値を変えて確かめ、問題の空欄を自分で書いて進めましょう。
入力したコードは再読み込みで消えます。残しておきたい内容は手元へコピーしてください。実行できないときは読み込みの対処を確認できます。
- 計算するための演算子(
+-*/) - 商とあまりを求める
//と% input()でキーボードから入力を受け取るやり方- 数値と文字列の違いと、
int()による変換
%)は共通テストで判定・集計問題の頻出となる演算です。STEP 1計算する ― 4つの演算子
プログラムでは、数値を使った計算ができます。たし算とひき算は数学と同じ + と - ですが、かけ算は *(アスタリスク)、わり算は /(スラッシュ)を使います。数学の × や ÷ の記号は使えません。
| 書き方の例 | 結果 | 意味 |
|---|---|---|
print(7 + 3) | 10 | たし算 |
print(7 - 3) | 4 | ひき算 |
print(7 * 3) | 21 | かけ算 |
print(7 / 3) | 2.3333333333333335 | わり算(小数になる) |
例題 1
どのように表示されるのかを予想してから実行しましょう。
最初のコードを読む(実行できないとき)
print('たし算:', 7 + 3)
print('ひき算:', 7 - 3)
print('かけ算:', 7 * 3)
print('わり算:', 7 / 3)* とわり算の / は、数学の × や ÷ と記号が違います。最初はつい数学の記号を書いてしまうものですが、エラーを見て直せば大丈夫ですよ。また、数学で 2x と書くようなかけ算記号の省略もできません。必ず 2 * x と書きましょう。
a と b のひき算・かけ算・わり算も、たし算と同じように表示されるプログラムにしなさい(例題1と同じ書き方です)。
ひき算: 8
かけ算: 48
わり算: 3.0
最初のコードを読む(実行できないとき)
a = 12
b = 4
print('たし算:', a + b)
# ▼ ここに3行書こう(ひき算・かけ算・わり算)解答例を見る(まず自分で書いてから開くこと)
a = 12
b = 4
print('たし算:', a + b)
print('ひき算:', a - b)
print('かけ算:', a * b)
print('わり算:', a / b)
わり算だけ 3.0 と小数で出るのがポイントです。12 / 4 は割り切れますが、/ の答えはいつも小数になります。a や b の数を変えて、ほかの計算でも試してみましょう。
1週間が何時間かをかけ算で計算して、以下のように表示されるプログラムを自分で考えて作りなさい。
最初のコードを読む(実行できないとき)
# ▼ ここに書いてみよう解答例を見る(まず自分で書いてから開くこと)
print('1週間は', 7 * 24, '時間です')
7 * 24 の計算結果がそのまま表示に使えます。jikan = 7 * 24 と変数に入れてから表示しても、もちろん正解です。
STEP 2商とあまり ― // と %
127個のあめを7人で分けると、1人18個ずつで、1個あまります。この「商」と「あまり」を求める専用の演算子が // と % です。127 // 7 は商の 18 を、127 % 7 はあまりの 1 を返します(/ のわり算と違って、答えは整数になります)。
例題 2
どのように表示されるのかを予想してから実行しましょう。数値を変えて試すのもおすすめです。
最初のコードを読む(実行できないとき)
a = 127
b = 7
print(a, 'を', b, 'で割った商は', a // b)
print(a, 'を', b, 'で割ったあまりは', a % b)a % 2 を計算すると、a が偶数なら0、奇数なら1になります。いろいろな数で確かめてみましょう。
// とあまり % は共通テストでは頻出なんだ。偶数・奇数の判定も、番号を順番にグループ分けするのも、正体はあまりの計算だ。試作問題では商とあまりを使う計算がそのまま出題された。絶対におさえておくように。
100個のクッキーを8人で分けます。// と % を使って、以下のように表示されるプログラムを自分で考えて作りなさい。
最初のコードを読む(実行できないとき)
# ▼ ここに書いてみよう解答例を見る(まず自分で書いてから開くこと)
cookie = 100
hito = 8
print('1人分は', cookie // hito, '個で、あまりは', cookie % hito, '個')
商が「1人分」、あまりが「余った個数」に対応します。数値を変数にしておくと、人数を変えた実験もすぐできます。
STEP 3キーボードから入力する ― input()
input() を使うと、プログラムの実行中にキーボードから値を受け取れます。カッコの中に書いた文字列は、入力をうながすメッセージとして表示されます。受け取った値は変数に代入して使います。
例題 3
実行すると入力欄が開きます。自分の名前を入力してみましょう。
最初のコードを読む(実行できないとき)
namae = input('名前を入力してください:')
print('こんにちは、', namae, 'さん')input() で好きな食べ物を聞いて、以下のように表示されるプログラムを自分で考えて作りなさい。
最初のコードを読む(実行できないとき)
# ▼ ここに1行書こう
print(tabemono, 'が好きなんですね')解答例を見る(まず自分で書いてから開くこと)
tabemono = input('好きな食べ物:')
print(tabemono, 'が好きなんですね!')
input() の結果を変数に受け取って、print() で使えていればOKです。
STEP 4数値と文字列 ― 型と int()
プログラミングでは、5(数値)と '5'(文字列)は見た目が似ていても別物として扱われます。この「値の種類」のことを型と呼びます。同じ + でも、数値どうしなら「たし算」、文字列どうしなら「つなげる」という別の働きをします。
以下のプログラムを実行したときに、どのように出力されるのかを予想してから実行しなさい。数値と文字列を扱うときでは演算子の役割が変化することと、なぜプログラムでは数値と文字列を区別するのかを考えてみましょう。
最初のコードを読む(実行できないとき)
number1 = 521
number2 = 23
text_number1 = '521'
text_number2 = '23'
print('数値の場合', number1, '+', number2, 'を実行すると', number1+number2, 'と表示される')
print('文字列の場合', text_number1, '+', text_number2, 'を実行すると', text_number1+text_number2, 'と表示される')確認ポイントを見る(実行してから開くこと)
544(たし算)、文字列の場合は 52123(つなげる)になります。同じ + でも型によって結果がまったく変わるからこそ、プログラムでは数値と文字列をはっきり区別する必要がある、というわけです。
実はinput() が受け取った値は、数字を打ち込んだとしても必ず文字列になるんです。これが次のステップの大切なポイントになりますよ。
input() で受け取った値は文字列なので、計算に使いたいときは int() で数値(整数)に変換してから使います。
例題 4
実行して、入力した数字が計算に使えることを確かめましょう。そのあと、2行目の int() の行を消すとどうなるかも試してみましょう。
最初のコードを読む(実行できないとき)
kazu = input('好きな整数を入力してください:') # このままではkazuは文字列としてあつかわれます
kazu = int(kazu) # int()のおかげで数値(整数)に変換されます
print('その数を2倍すると', kazu * 2, 'です')年齢を input() で入力させて、10年後の年齢が以下のように表示されるプログラムを自分で考えて作りなさい。
最初のコードを読む(実行できないとき)
nenrei = input('年齢:')
# ▼ ここに1行書こう
print('10年後は', nenrei + 10, '歳です')解答例を見る(まず自分で書いてから開くこと)
nenrei = input('年齢:')
nenrei = int(nenrei)
print('10年後は', nenrei + 10, '歳です')
int() への変換を忘れると、エラー例1で見たTypeErrorになります。忘れていた人は、いま経験できてラッキーです。
エラー例 ― よくあるエラーを知ろう!
第1章と同じように、よくあるエラーをわざと起こして、メッセージの読み方に慣れましょう。読み方はいつも同じ、いちばん最後の行からです。
エラー例 1 int() のつけ忘れ
input() で受け取った文字列を、そのまま計算に使おうとしています。数字を入力して、どんなエラーが出るか見てみましょう。
最初のコードを読む(実行できないとき)
kazu = input('好きな整数を入力してください:')
print(kazu + 1)エラーの読み方を見る(実行してから開くこと)
TypeError: can only concatenate str (not "int") to str と出ます。TypeError(タイプエラー)は「型がちがう」という意味で、「文字列(str)と数値(int)は + でつなげられない」と教えてくれています。kazu = int(kazu) の1行を入れてから計算すれば直ります。実際のプログラミングでとても多いエラーです。
エラー例 2 0で割る
数学と同じで、プログラムでも0で割ることはできません。
最初のコードを読む(実行できないとき)
print(10 / 0)エラーの読み方を見る(実行してから開くこと)
ZeroDivisionError: division by zero と出ます。「0によるわり算」という意味そのままのエラーです。変数で割り算をするプログラムでは、「割る数が0になる瞬間がないか」を意識するのが上級者への一歩です。
エラー例 3 かけ算記号の省略
数学の癖で 2x のように書いてしまった例です。
最初のコードを読む(実行できないとき)
x = 10
print(2x)エラーの読み方を見る(実行してから開くこと)
SyntaxError: invalid decimal literal と出ます。文法のまちがい(SyntaxError)で、Pythonは 2x を「変な数値」として読もうとして失敗しています。かけ算は省略せず 2 * x と書けば直ります。
演習問題
以下のように出力されるようプログラムを自分で考えて作成しなさい。ただし、半径は input() で入力しなさい。
最初のコードを読む(実行できないとき)
# ▼ ここに書いてみよう解答例を見る(まず自分で書いてから開くこと)
hankei = input('半径:')
hankei = int(hankei)
pi = 3.14
print('半径', hankei, 'の円の面積は', hankei*hankei*pi, 'です')
input() で受け取った値を int() で数値に変えてから計算するのがポイントです。円周率を変数 pi にしておくと、あとから3.14159に変えたいときも1か所直すだけで済みます。
以下のように出力されるようプログラムを自分で考えて作成しなさい。ただし、127や7といった数値は後から変更できるように変数を用いなさい。
最初のコードを読む(実行できないとき)
# ▼ ここに書いてみよう解答例を見る(まず自分で書いてから開くこと)
kazu1 = 127 kazu2 = 7 print(kazu1, 'を', kazu2, 'で割ったときの答えは', kazu1//kazu2, '余り', kazu1%kazu2)商は
//、あまりは % でした。数値を変数にしておけば、1行目と2行目を書きかえるだけで別の計算に使い回せます。
秒数を input() で入力させて、それが「何分何秒」かを以下のように表示するプログラムを自分で考えて作りなさい。
最初のコードを読む(実行できないとき)
# ▼ ここに書いてみよう解答例を見る(まず自分で書いてから開くこと)
byou = input('秒数:')
byou = int(byou)
print(byou, '秒は', byou // 60, '分', byou % 60, '秒です')
60で割った商が「分」、あまりが「秒」です。時間の計算は、共通テストのシミュレーション問題(待ち時間など)でも土台になる考え方です。
3桁の整数を input() で入力させて、// と % だけを使って百の位・十の位・一の位を取り出し、以下のように表示するプログラムを作りなさい。
ヒント:472 // 100 は4。472 // 10 は47で、その一の位が「十の位」です。
最初のコードを読む(実行できないとき)
# ▼ ここに書いてみよう解答例を見る(まず自分で書いてから開くこと)
n = input('3桁の整数:')
n = int(n)
print('百の位:', n // 100)
print('十の位:', n // 10 % 10)
print('一の位:', n % 10)
「位を取り出す」計算は、共通テスト2025年本試験に出たチェックディジット(番号の誤り検出)の土台になるテクニックです。n // 10 % 10 は「10で割って一の位を見る」という2段構えになっています。
自由実行スペース
思いついたことを自由に試すための場所です。学んだことを使って、好きな計算をさせてみましょう。
最初のコードを読む(実行できないとき)
# 自由に書いてみよう÷ と書かれることがあるんだ。Pythonの // と同じ働きだ。あまりの % はそのまま使われる。記号が違っても考え方は同じ——ここで身につけた計算が、そのまま入試で通用するんだ。
この章の確認:理由まで説明してみよう
文字列と数値、通常のわり算と商・あまりを区別できますか。
n = '17' print(int(n) // 5, int(n) % 5)
出力と考え方を見る
出力:3 2
文字列を整数に変換してから、商3とあまり2を求めます。// と % は別の結果を返します。
nを '20' に変えると、出力はどうなるでしょうか。
変更後の答えを見る
4 0になります。20は5で割り切れるため、あまりは0です。
自分でコードを書き換えて、この章の自由実行スペースで確かめてください。出力の一致だけでなく、変数がどの順に変わったかも説明できれば次へ進みましょう。
つまずいたときの説明 / 学習の進め方 / 参考資料