データを読み込み中...

この教材では、プログラミングの基本となる「変数」と「演算子」について学習します。
学習内容:
プログラミングにおいて、変数とは「データを保存しておく箱」のようなものです。
現実世界で考えてみましょう。あなたが買い物に行くとき、買った商品を袋に入れますよね。その袋に「食料品」「日用品」などのラベルを貼っておけば、後で何が入っているかすぐにわかります。
プログラミングでも同じです。データ(数値や文字列)を変数という「箱」に入れて、その箱に名前をつけておきます。こうすることで、後からその名前を使ってデータを取り出したり、別のデータに書き換えたりできるのです。
# 変数に値を代入する(箱にデータを入れる)
age = 25
name = "田中"
# 変数の中身を表示する(箱の中身を確認する)
print(age) # 25
print(name) # 田中
このコードでは、ageという名前の箱に25という数値を、nameという名前の箱に"田中"という文字列を入れています。
重要なポイント: 変数を使うことで、同じデータを何度も書く必要がなくなり、プログラムを柔軟に変更できるようになります。
変数にデータを入れることを「代入」と言います。代入には=(イコール)記号を使います。
ここで注意してほしいのは、数学の「等しい」という意味ではなく、「右側の値を左側の変数に入れる」という意味だということです。
# 右側の値を、左側の変数に代入する
price = 1000
# 変数の値を使って計算し、結果を別の変数に代入
tax = price * 0.1
total = price + tax
print(total) # 1100.0
このように、すでに存在する変数を使って計算し、その結果を新しい変数に入れることもできます。
変数は何度でも上書きできます
score = 80
print(score) # 80
# 同じ変数に新しい値を代入(上書き)
score = 95
print(score) # 95
変数には自由に名前をつけられますが、いくつかのルールがあります。
必ず守らなければいけないルール:
# 正しい変数名の例
user_name = "山田"
age1 = 20
totalPrice = 1000
_temp = 50
# 間違った変数名の例(これらはエラーになります)
# 1st_name = "太郎" # 数字から始まっている
# user-name = "次郎" # ハイフンは使わない
# for = 10 # forは予約語なので使えない
推奨される書き方:
Pythonでは、変数名を小文字で書き、複数の単語を組み合わせる場合はアンダースコア(_)でつなぐ書き方が推奨されています。これを「スネークケース」と呼びます。
# 推奨される書き方
user_name = "田中"
total_price = 5000
item_count = 3
# あまり推奨されない書き方(動作はしますが)
userName = "山田" # キャメルケース
TotalPrice = 3000 # パスカルケース
変数名は、その変数が何を表しているのかわかりやすい名前にすることが大切です。
# わかりにくい変数名
x = 25
y = 170
# わかりやすい変数名
age = 25
height = 170
※実際には、現場ごとに決められたコーディングルールによって定められている場合がほとんどです。臨機応変に対応できるようにしましょう。
Pythonでは、変数に入れるデータにいくつかの「型」があります。型によって、できる操作が変わってきます。
主なデータ型
# 整数型(int)- 小数点のない数値
age = 25
count = 100
temperature = -5
# 浮動小数点型(float)- 小数点のある数値
price = 199.99
height = 175.5
rate = 0.08
# 文字列型(str)- 文字の並び
name = "田中太郎"
message = "こんにちは"
address = "東京都渋谷区"
# 真偽値型(bool)- TrueかFalseのどちらか
is_student = True
has_license = False
is_raining = True
それぞれの型がどのような場面で使われるか見てみましょう
# これは数値(int型)
number = 100
# これは文字列(str型)
text = "100"
# この2つは異なるものとして扱われます
print(number + 50) # 150(数値の計算)
# print(text + 50) # エラー!文字列と数値は直接計算できません
⚠️ 数値と文字列は見た目が同じでも、型は異なります。
算術演算子は、数値を使って計算を行うための記号です。電卓で計算するのと同じように、プログラムでも様々な計算ができます。
なぜプログラムで計算をするのでしょうか?例えば、ECサイトで商品を複数購入したとき、合計金額を自動で計算してくれますよね。あれも算術演算子を使ったプログラムが動いているのです。
Pythonで使える算術演算子を見ていきましょう。
# 足し算(加算)
result = 10 + 5
print(result) # 15
# 引き算(減算)
result = 10 - 5
print(result) # 5
# 掛け算(乗算)
result = 10 * 5
print(result) # 50
# 割り算(除算)
result = 10 / 5
print(result) # 2.0
ここで気をつけてほしいのは、割り算の結果は常に小数(float型)になるということです。割り切れる計算でも、結果は2.0のように小数点付きになります。
# 切り捨て除算(整数部分のみ)
result = 10 // 3
print(result) # 3
# 余りを求める(剰余)
result = 10 % 3
print(result) # 1
# べき乗(累乗)
result = 2 ** 3 # 2の3乗
print(result) # 8
切り捨て除算(//)と余り(%)の使い道:
切り捨て除算と余りは、一見すると使い道がわかりにくいかもしれません。しかし、実際のプログラミングではよく使われます。
# 例1: 100円玉で1250円を支払う場合、何枚必要?
price = 1250
coins_needed = price // 100
print(coins_needed) # 12枚
# お釣りはいくら?
change = price % 100
print(change) # 50円
# 例2: 偶数か奇数かを判定する
number = 7
remainder = number % 2
print(remainder) # 1なら奇数、0なら偶数
数学と同じように、プログラムでも計算には順序があります。
# 掛け算が先に実行される
result = 2 + 3 * 4
print(result) # 14(3*4=12を先に計算し、その後2+12=14)
# 括弧を使うと優先順位を変えられる
result = (2 + 3) * 4
print(result) # 20(2+3=5を先に計算し、その後5*4=20)
優先順位のルール(高い順):
()***, /, //, %+, -複雑な計算を書くときは、括弧を使って明示的に順序を示すと、コードが読みやすくなります。
# 複雑な計算の例
base_price = 1000
tax_rate = 0.1
discount = 100
# 括弧なしだと読みにくい
total = base_price + base_price * tax_rate - discount
# 括弧ありだと意図が明確
total = (base_price + (base_price * tax_rate)) - discount
print(total) # 1000
変数に対して計算を行い、その結果を同じ変数に再代入することがよくあります。このとき、複合代入演算子を使うと、コードをシンプルに書けます。
# 通常の書き方
count = 10
count = count + 5
print(count) # 15
# 複合代入演算子を使った書き方
count = 10
count += 5 # count = count + 5 と同じ意味
print(count) # 15
これは「カウントアップ」と呼ばれる、プログラミングで非常によく使われるパターンです。例えば、ウェブサイトの訪問者数をカウントする、ゲームのスコアを加算する、といった場面で使います。
# すべての複合代入演算子
number = 100
number += 20 # number = number + 20 → 120
print(number)
number -= 10 # number = number - 10 → 110
print(number)
number *= 2 # number = number * 2 → 220
print(number)
number /= 4 # number = number / 4 → 55.0
print(number)
number //= 5 # number = number // 5 → 11.0
print(number)
number %= 3 # number = number % 3 → 2.0
print(number)
実際の使用例
# ショッピングカートの合計金額を計算
total = 0
# 商品1を追加
total += 1500
# 商品2を追加
total += 2300
# 商品3を追加
total += 800
print(total) # 4600
比較演算子は、2つの値を比較して、その結果を「True(真)」または「False(偽)」で返します。
日常生活でも「この商品は予算より高いかな?」「今日は昨日より寒いかな?」といった比較をしますよね。プログラムでも同じように、値を比較して判断を行います。
比較演算子が返す値は、真偽値(bool型)と呼ばれる特別なデータ型です。
# 等しい(==)
print(5 == 5) # True(5は5と等しい)
print(5 == 3) # False(5は3と等しくない)
# 等しくない(!=)
print(5 != 3) # True(5は3と等しくない)
print(5 != 5) # False(5は5と等しくない、は偽)
ここで注意してほしいのは、「等しい」を判定するのは==(イコール2つ)で、代入の=(イコール1つ)とは違うということです。
# 代入(=)
age = 25 # ageに25を代入
# 比較(==)
result = (age == 25) # ageが25と等しいかを判定
print(result) # True
# より大きい(>)
print(5 > 3) # True(5は3より大きい)
print(3 > 5) # False(3は5より大きい、は偽)
# 以上(>=)
print(5 >= 5) # True(5は5以上)
print(3 >= 5) # False(3は5以上、は偽)
# より小さい(<)
print(3 < 5) # True(3は5より小さい)
print(5 < 3) # False(5は3より小さい、は偽)
# 以下(<=)
print(5 <= 5) # True(5は5以下)
print(5 <= 3) # False(5は3以下、は偽)
「以上」と「以下」の違い:
>(より大きい)と>=(以上)の違いは、「等しい場合」を含むかどうかです5 > 5はFalse(5は5より大きくない)5 >= 5はTrue(5は5以上)比較演算子は、後で学ぶ条件分岐(if文)で非常に重要になります。今の段階では、比較した結果を変数に入れることができることを理解しておきましょう。
# 例1: 年齢制限のチェック
age = 17
is_adult = age >= 18
print(is_adult) # False
# 例2: 在庫の確認
stock = 5
is_available = stock > 0
print(is_available) # True
# 例3: 価格の比較
budget = 10000
item_price = 12000
is_affordable = item_price <= budget
print(is_affordable) # False
数値だけでなく、文字列も比較できます。
name1 = "田中"
name2 = "田中"
name3 = "山田"
# 文字列が等しいかを比較
print(name1 == name2) # True
print(name1 == name3) # False
print(name1 != name3) # True
文字列の場合、大文字と小文字は別の文字として扱われることに注意してください。
text1 = "Hello"
text2 = "hello"
print(text1 == text2) # False(大文字と小文字が異なる)
以下の要件を満たすプログラムを作成してください。
要件
widthに幅(例: 5)を代入するheightに高さ(例: 10)を代入するareaに代入する(面積 = 幅 × 高さ)perimeterに代入する(周 = (幅 + 高さ) × 2)areaとperimeterを画面に表示する期待する出力例
50
30
ヒント
width * heightで計算できます(width + height) * 2で計算できます以下の要件を満たすプログラムを作成してください。
要件
scoreに初期値として0を代入するscoreに50を加算する(複合代入演算子を使用)scoreに30を加算する(複合代入演算子を使用)scoreを2倍にする(複合代入演算子を使用)scoreを画面に表示する期待する出力例
160
ヒント
+=を使います*=を使います以下の要件を満たすプログラムを作成してください。
要件
total_secondsに秒数(例: 3725)を代入するhoursに代入する(1時間 = 3600秒)remainingに代入するminutesに代入する(1分 = 60秒)secondsに代入するhours、minutes、secondsをそれぞれ画面に表示する期待する出力例
1
2
5
ヒント
total_seconds // 3600を使います%演算子を使います以下の要件を満たすプログラムを作成してください。
要件
temperatureに気温(例: 28)を代入するis_hotに代入するis_very_hotに代入するtarget_tempに目標気温(例: 25)を代入するis_perfectに代入するis_hot、is_very_hot、is_perfectをそれぞれ画面に表示する期待する出力例
True
False
False
ヒント
>=を使います>を使います==を使いますこの教材では、以下の内容を学習しました:
=を使って値を代入するこれらの知識は、次の教材「論理演算と文字列・入出力」でさらに活用していきます。演習問題をしっかり解いて、理解を深めておきましょう。