【Python入門】変数とは?わかりやすく解説してみた



【Python入門】変数とは?わかりやすく解説してみた

プログラム処理に欠かすことのできない 変数へんすう の取り扱い。
今回は、Pythonの変数処理についてご紹介します。
オブジェクト指向や関数処理など、どのセクションにも変数は登場してきますので基本を押さえておきたいですね。

目次
  1. 【Python入門】変数とは?わかりやすく解説してみた
  2. 変数とは
  3. 変数を使ったサンプルコード
  4. 変数化できるデータ
  5. 変数名のつけ方
  6. 複数の変数を一括処理
  7. まとめ

【Python入門】変数とは?わかりやすく解説してみた

変数とは

python-valiable-about

プログラム処理における変数とは、文字や数値、計算式を自分の好きなキーワードに記録できる機能です。

例えば、

my_name = "おおしま" 
print(my_name)

とすると、おおしま という文字列を my_name に代入することができます。 ユースケースとしては、Webアプリの名前入力欄でユーザーが入力したデータを my_name に代入させて、入力値が正しいか、重複はないか、などをチェックしたり、データベースに登録したり処理することが可能。

他にも変数のユースケースはたくさんありますが、Pythonに限らず多くのプログラミング言語に変数は登場してきますので、感覚を養っておきたいですね。

変数を使ったサンプルコード

私だけかもしれませんが、参考書などで「変数」の項目をみていると、眠くなります。変数は基本的な項目なためか、学習内容は比較的地味で、読んだり見ているだけでは面白くないです。。。

そこでモチベーションが上がるような、サンプルコードを考えました。「変数が分かるとこんなこともできるんだ」「ワクワク、ドキドキ、ときめき〜」となって、皆様の学習スピードの加速化につながれば幸いです。

サンプルはいろいろ考えましたが、最近旬なビットコインの価格を取得できるコードとしました。 国内主要取引所のAPIデータを元に、Pythonプログラムで現在の平均価格を取得。 Web開発をはじめ、自動売買やデータ収集など様々な場面で役立つと思います。

上記画像右下の ▶ マークをクリックして、プログラムを実行してみてください。現在のビットコイン価格の平均値が表示されたと思います。

いかがですか?変数、すごくないですか?

プログラムの処理フローとしては、取引所のAPIデータを変数に代入し、現在の取引価格を表示。そして各取引所の価格を演算し、平均値を出力。 これらのプログラムを変数なしで処理しようと思うとプログラムが複雑化し、可読性が大きく損なわれます。

変数は、人間の頭の中の「こうして、次にこう処理して、、、」というロジカルシンキングを表現してくれる機能ともいえるでしょう。

それでは少しモチベーションが上がったところで変数の基本的な使い方をご紹介していきたいと思います。

変数化できるデータ

まずはじめに変数として扱えるデータにはどんな種類があるか、把握したいと思います。

  • 数値
  • 文字
  • 変数
  • 列(JSONファイルデータなども) 

数値を変数として扱うと、計算のプログラム処理に役立ちます。 例えば円の面積を求めるプログラム。予め決まっている円周率を変数に代入することで、読みやすく理解しやすいプログラムとなりますね。

■数値の変数 サンプルコード■

pi = 3.14
r = float(input("半径は何cm?"))
calc = r * r * pi
print("円の面積:" , calc , "cm2")

円周率を pi 、 半径を r 、 面積を calc に代入し、演算。 pi 、 r 、 calc の変数を使うことで各計算ステップがわかりやすいですね。

【オンラインで上記コードをテスト】
https://repl.it/@takayukioshima/variable-circle-calculate


次に文字を変数として扱うプログラムの例をご紹介します。 文字を扱うプログラムとしては、「チャット系」「SNS系」「AI会話系」などありますが、今回は多くの方に馴染み深い「ユーザー登録」画面の一例をご紹介しますね。 メールアドレスの入力を手伝ってくれるプログラムを考えてみました。

■文字の変数 サンプルコード■

title = "-- メールアドレスを入力してみよう --"
print(title)

print ("どのメールサービス?")
print ("1. Gmail")
print ("2. yahoo")

choice = input("【1 or 2 ?】 : ")
address = input("アドレスは?(●●@gmailの●部分)") 
choice = int(choice)

if choice == 1:
        print (address+"@gmail.com")
elif choice == 2:
        print (address+"@yahoo.co.jp")
else: 
        print ("すいません、ちょっとよくわかりません。。。")

冒頭の title 部分で、文字の変数化を行っています。 その次にちょっと応用系で、メールアドレスの入力文字を address に代入して、入力文字とドメイン名を合成。 文字を変数として扱うことで、文字の合成や文字の真偽を求めることが可能となりますね。

【オンラインで上記コードをテスト】
https://repl.it/@takayukioshima/valiable-select-email


次に「変数の変数」についてご紹介。数値を段階的に計算してく場合、ステップ1の計算結果を A に代入し、計算結果 A を用いてステップ2 の計算を行い、そして結果を B に代入し、など段階的に処理を行うプログラムなどで「変数の変数」は使われたりします。

■変数の変数 サンプルコード■

variable1 = 100
variable2 = variable1 * 0.5
variable3 = variable2 * 100
print(variable3,variable2,variable1)

たくさん変数が出てきてややこしく思うかもしれませんが、「文字のパズル」と思って、各変数のつながりを確認すれば分かりやすいと思います。変数が分かりにくい場合は、コードを紙に印刷して、蛍光ペンでマーキングするとイメージしやすいと思いますよ。


最後に「列の変数化」をご紹介しますね。APIを使ったデータ処理など本格的な処理に「列の変数化」は使われたりしていますので、「列の取り扱い」と「変数」の両方を理解して、うまく利用したいですね。

■列の変数化 サンプルコード■

my_list = ["アイテム1", "アイテム2", "アイテム3", "アイテム4"]
number_list = [1,2,3,4]
print(my_list)
print(number_list[1])

上記コードは基本的な「列の変数化」で、APIのJSONデータを利用したケースは、冒頭紹介したビットコイン価格の取得プログラムで使われています。このような場合では、どちらかというと「列」に関する知識が必要といえるでしょう。

【「変数の変数」「列の変数」などをオンラインで確認】 https://repl.it/@takayukioshima/variable-demo

変数名のつけ方

変数の使い方を理解したところで、次に変数名のつけ方を知っておきましょう。 Pythonの場合、以下のような注意点があります。

  • 数字から始まる変数名はダメ
  • 変数名内でスペースは使用不可
  • 接続詞は基本アンダーバー
  • ひらがな、漢字は使用可

実際にいくつかのコードを見てみましょう。

基本的には分かりやすい英単語で変数名を決め、単語の数は多くても3つ程度が慣習的です。

【変数名の設定の慣習】

一般的なスタイル あまりオススメできないスタイル 備考
my_int myInt 文字と文字はアンダーバーで接続、接続後は小文字
int4 Int4 文字と数字を接続する場合も基本は小文字
my_first_string myFirstString 2語以上続く場合も基本はアンダーバー

変数名については、サンプルコードやオープンソースのコードを見る中で、徐々に慣れていけばいいと思います。まずはエラーのでない、動くプログラムを作ることが優先でしょう。

複数の変数を一括処理

すこし応用的な部分になりますので、参考程度に「こんな変数処理もあるんだな」という程度で知っておくといいでしょう。

x = y = z = 0
print(x)
print(y)
print(z)
j, k, l = "shark", 2.05, 15
print(j)
print(k)
print(l)

python_valiable

まとめ

Pythonのプログラムをみると、ほとんどのコードで変数は使われています。Python学習者の中には、結果を早く求めるばかりに「変数」のような基礎を飛ばして開発に勤しむ方もいらっしゃることでしょう。しかし、変数が理解できると、明らかに「プログラムの読解力」「応用力」は上がりますね。

「ちょっと一人では難しいな」「独学ではモチベーションがもたない、時間がない」という方、時間と場所の制約を受けにくい「オンラインのCodeCamp」いかがでしょうか?

現役エンジニアとのマンツーマンで、確実にスピーディーに「Python力」がつくと思いますよ。

オシママサラ
この記事を書いた人
オシママサラ
\ 無料体験開催中!/自分のペースで確実に習得!
オンライン・プログラミングレッスンNo.1のCodeCamp