Python速習ガイド - ステップ1 基本的な文法とデータ型 (4) - 変数と代入
シリーズ - Python速習ガイド
コンテンツ
Info
- 本講座は、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桁まで表示してください