Pythonインタラクティブガイド - ステップ1 基本的な文法とデータ型 (4) - 変数と代入
シリーズ - Pythonインタラクティブガイド
コンテンツ
Info
- 本講座「Pythonインタラクティブガイド」は、手を動かしながらPythonプログラミングの基礎を学べる実践的な入門講座です。
- 「スタイルガイド」では、Pythonで読みやすくきれいなコードを書くためのガイドライン(PEP8)を主に紹介しています。
- 各コード例はその場で実行して結果を確認できます。
ページ再読み込みで元に戻るので、自由に試してみてください。
「ステップ1 基本的な文法とデータ型」の続きです。
1.4. 変数と代入
1.4.1. 変数とは
変数 はプログラミングにおける基本的な要素です。
プログラミング言語によってその仕様はわずかに異なってきますが、
Pythonでは、変数はデータを指し示す 「ラベル」 のようなものと考えてください。
(値が入った箱そのものではなく、その箱に貼られた名札のようなものです)
graph LR
subgraph "オブジェクト (値)"
obj1[10]
obj2["Python"]
obj3[True]
end
subgraph "変数 (ラベル)"
age --> obj1
name --> obj2
is_active --> obj3
end
style obj1 fill:#a5d8ff,stroke:#333,stroke-width:2px
style obj2 fill:#ffc078,stroke:#333,stroke-width:2px
style obj3 fill:#8ce99a,stroke:#333,stroke-width:2px
- 複数の変数を同じ値にラベル付けすることができます (詳しくは後ほど解説します)
- 変数に値を関連付けることを 代入 と呼びます
- 代入は、イコール(
=)の左に変数、右に値を書きます
代入
変数名 = 値
スタイルガイド
- 代入のイコール(
=)の前後にはスペースを空けましょう。
📚練習問題
摂氏温度(℃)を華氏温度(°F)に変換するプログラムを作成してみましょう。
- 変数
celsiusに 25 を代入 - 公式
(celsius * 9/5) + 32を使って華氏温度に変換 - 結果を変数
fahrenheitに代入 - 両方の温度を「25℃は77.0°Fです」のように出力してください
-
まずは既に紹介した方法を使って表示してみてください
-
次の書き方でも表示できるので試してみてください(1.4.4.で紹介します)
print(f"{celsius}℃は{fahrenheit}°Fです")
-
1.4.2. 変数の命名規則
変数名の付け方には以下のルールがあります。
- 文字(
a-z,A-Z, …)、数字、アンダースコア(_)で構成できます - 数字で始めることはできません
- 予約語(
if,for,whileなど)は使えません
スタイルガイド
- 変数名は小文字のみを使い、単語間はアンダースコア(
_)で区切ることが推奨されています。
- 変数名は役割がわかりやすい名前にしましょう
- 短すぎる名前(
i,jなど)は避けましょう - 特に、小文字のL(
l)や大文字のO(O)や大文字のI(I)は視認性が悪いので使用しないようにしましょう
- 短すぎる名前(
- 日本語の変数名も使用可能ですが、推奨されていません
- プログラム中で値が変化しない変数は 定数 と呼ばれます。
定数の場合は、大文字のみを使い、単語間をアンダースコア(_)で区切る命名が推奨されています。- 実際のところ、Pythonには「変更できない定数」を宣言する機能はありません。
大文字の変数名は「この値は変更すべきでない」という開発者間の約束事であり、
技術的には通常の変数と同様に値を書き換えることができます。
- 実際のところ、Pythonには「変更できない定数」を宣言する機能はありません。
1.4.3. 変数への再代入
- 変数の値は書き換えることができます。
- これは、別の値(オブジェクト)にラベルを付け替える操作になります。
graph LR
subgraph "ステップ2: 再代入後"
greeting2[greeting] --> value2["Good morning!"]
value1_old["Hello!"]
end
subgraph "ステップ1: 最初の代入"
greeting --> value1["Hello!"]
end
style value1 fill:#ffc078,stroke:#333,stroke-width:2px
style value2 fill:#ffc078,stroke:#333,stroke-width:2px
style value1_old fill:#ffc078,stroke:#333,stroke-width:2px,opacity:0.3
- 変数の値は、別の型の値に書き換えることもできます。
- 変数自身の値を使用して値を書き換えることも可能です。
- 算数で登場するイコール(
=)と同じと考えると混乱しますが、
プログラム内でイコール(=)は「代入する」という操作を表しています。
(後ほど扱いますが、「等しい」はイコール2個(==)で表します)
- 算数で登場するイコール(
- 以下のように省略して書くこともできます。
📚練習問題
税別5000円の商品が20%OFFで販売されている場合の税込価格を計算しましょう。
- 変数
totalに商品の合計金額 5000 を代入 - 20%の割引を適用する
- 消費税 10% を追加する
- 最終的な支払い金額を「最終的な支払い金額は〇〇円です」と表示する
1.4.4. 変数の活用: 文字列フォーマット(f-string)
上記の練習問題のように変数の値を文字列の中に埋め込みたい場合があります。
Pythonでは f-string という機能を使うと簡単に実現できます。
- f-stringは文字列の前に
fをつけて書きます - 文字列内で変数を使う場合は
{変数名}という形式で記述します
- f-stringは変数だけでなく計算式の結果も含めることができます
float型の値を表示する際に、小数点以下の桁数を指定することもできます
- 桁数を指定して0埋めすることもできます
- 文字数を指定して右寄せ・左寄せ・中央寄せもできます
- f-stringには他にも様々な機能があります。詳しくは以下などを参照してください。
従来の文字列フォーマット方法
f-stringは Python 3.6 から導入された比較的新しい機能です。
以前は次のような方法が使われていました。
f-string はこれらの方法よりも読みやすく簡潔に書けるため、積極的に使うことをお勧めします。
📚練習問題
f-stringを使って自己紹介文を作成しましょう。
- 変数
nameに自分の名前を代入(例: “山田太郎”) - 変数
ageに年齢を代入(例: 25) - 変数
hobbyに趣味を代入(例: “プログラミング”) - 変数
heightに身長をcmで代入(例: 175.5) - 以下の情報をf-stringを使って1行で表示してください
- 「私の名前は○○です。○○歳で、趣味は○○です。身長は○○cmです。」
- 身長は小数点以下1桁まで表示してください