【Python入門】変数の宣言と使い方を解説

今回は、Python変数について説明します。プログラミングにおいて大切な概念である変数について、学んでいきましょう。

この記事では、

  • 変数に関する説明
  • 変数の型
  • について解説します。さらに、

  • 変数の命名規則
  • についての解説を通して、実際のプログラミングで気をつけることを説明します。

    ※ この記事のコードはPython 3.7, Ubuntu 18.04で動作確認しました。

    変数とは

    プログラミングで使う変数とは、メモリ上のデータに、アクセスしやすいようにつける名前です。

    数学の変数も「3x+1=0」の「x」の部分を指しますが、基本的にプログラミングの変数とは違うものとして考えましょう。

    また、変数と値を対応付けることを代入といいます。このように変数に値を「代入」するという考え方は手続き型言語(C言語、PHP、Pythonなど)でよく用いられます。

    また、もしかしたらこれに似た動作を「束縛」と言っている記事を見たことがある方がいるかもしれません。これは関数型言語(Haskell, Lisp, Rustなど)でよく用いられます。関数型言語では変数が値に束縛されると考えます。

    Pythonについて調べていても、もしかしたら出会うかもしれない表現です。

    そういう表現もあるのだ、程度でいいので覚えておいてください。また、Pythonでは動的型付けという型システムを採用しています。

    つまり「int num = 10」のように書かなくても、「num = 10」と書けばnum変数はint型だと自動で型を予測してくれるということです。これらを念頭に、実際にPythonの変数の使い方を見ていきましょう。

    変数に値を代入する方法

    ここからは、Pythonで実際に変数に値を代入する方法を解説します。

    いくつかの変数への代入方法を紹介します。

    このように、変数を左、代入する値を右に書きます。

    イコールの両端の半角スペースは、開けても開けなくてもかまいません。一つのイコールでも、カンマで区切れば複数の変数に複数の値を一度に代入できます。

    実行結果

    ちなみに、変数名として使えるのは

  • 小文字の英字
  • 大文字の英字
  • 数字
  • アンダースコア
  • のみで、数字は変数の名前の先頭には使えません。また新しい言語ではギリシャ文字なども使えますが、Pythonでは使うことができません。

    これらは有効です。

    しかし、以下の変数は使用できません。

    変数には関数も入れることができます。

    これは関数がオブジェクトとして扱えるからです。

    またクラスもオブジェクトなので、関数同様に変数に代入することができます。

    変数の型について

    Pythonでは変数の型を宣言する必要はありません。動的型付けによって、型が自動的に判別されています。

    変数に代入されたオブジェクトの型をしっかり確認したい場合は、type/isinstance関数を使います。詳しくはこちらの記事をご覧ください。

    Pythonで型を確認するには?type・isinstance関数について解説
    更新日 : 2019年8月6日

    ここまで変数を作るときに型を宣言しなくてもいいと解説してきました。ですがPython 3.5以降のバージョンではtype hintingというものが登場しました。

    これは関数の引数や返り値の型を宣言することで、コーディング・デバッグをしやすくしてくれるというものです。これについてはこちらの記事で詳しく解説しています。

    Pythonを入門する時にこれだけは覚えておきたい基本まとめ
    更新日 : 2019年8月8日

    変数の命名規則について

    変数の名前はルールに則れば、基本的には自由につけることができます。しかし、予約語や、組み込み関数と同じ名前をつけるのは避けましょう。

    Pythonには、「def、class、True、False、import」など、30個以上の予約語があります。詳しくはこちらのキーワードを確認しましょう。

    わかりやすく便利な文字列が予約語にはたくさんあります。

    しかし、不用意に使うことでコード内で衝突が起こり、不具合を起こす可能性も無いとは言い切れません。こちらのサンプルコードを見てみましょう。

    type関数を使って型を確認すると、num=100の場合には、int型だと表示されるでしょう。しかし、typeという変数にfloatと代入してしまうと、このような実行結果になります。

    実行結果

    本当であればnumの型(ここではint型)が表示されるされるはずですが、実際には違う結果が表示されていますね。

    これはtypeという変数にfloatという関数を入れてしまったから起こった問題です。エラーにはなりませんが、重大なバグの原因にもなり得るコードです。

    このようなことを防ぐためにも、他の変数名などと被らない名前を使うように心がけましょう。

    あなたが学ぶべき言語はPythonで本当に大丈夫?


    画像:shutterstock

    ここまでPythonの変数について解説しましたが、この記事をご覧の方の中には、

    このままでPythonを習得できるのだろうか..?

    と不安になっている人もいるのではないでしょうか?そんな方には、一度立ち止まって考えて欲しいことがあります。それは、そもそもあなたがPythonを学ぶ目的は何か?本当に学ぶべき言語はPythonで間違いないか?ということです。

    Pythonを学ぶ目的、理由は明確ですか?

    Pythonに限った話ではありませんが、プログラミング学習は学ぶ目的や理由が不明確だと挫折してしまいやすいです。

    もしあなたが今、

    • なんとなくPythonが人気そうだから
    • Pythonは将来性がありそうだから

    といったような、ぼんやりした理由でpythonを学んでいるとしたらそれは要注意です。なぜなら、「勉強の為の勉強状態」に陥ってしまい挫折してしまう可能性もありますし、そもそもあなたが学ぶべき最適な言語が他にあったという事も考えられるからです。

    どのプログラミング言語を学ぶか?はその先のエンジニア人生を左右すると言っても過言ではありません。もしあなたが言語選定に少しでも不安があるなら、まずはプログラミング言語無料診断アプリを使ってみてください。

    いくつかの簡単な質問に答えるだけで、あなたにぴったりの言語や学習プランを1分ほどで無料診断致します。

    挫折せずに学びたいなら

    また、学ぶべき言語はPythonで間違っていないけど、エラーとの戦いに消耗している方や、Python学習に最適な学習環境を作れていない人もいるかもしれません。

    というのも、一般的にPythonは初心者でも学びやすい言語と言われていますが、そもそも機械学習という分野は、プログラミング以外にも専門的な知識や数学の知識も必要になってくるので、実はかなり挫折しやすい言語でもあるのです。

    なのでやはり、つまずいた時に分からない部分を聞ける環境を作っておくと、挫折する事なく学習を続けられスキルを習得できる可能性がグッと上がります。

    もしあなたが今Pythonの独学に少しでも不安を抱いているのであれば、ぜひ弊社「侍エンジニア塾」をご利用ください。

    弊社では、機械学習専門コースを用意しており、現役エンジニアがマンツーマンであなたの学習をサポートします。また、転職支援や独立・起業サポートもしているので、学習した先も安心ですよ。

    もちろん、いきなり入会する必要はありません。興味がある人はまず無料体験レッスンを利用してみてください。弊社随一のコンサルタントが、あなたの理想や目標をヒアリングした上で、あなたにぴったりの学習プランを提供させて頂きます。

    無料体験は下記ボタンから1分ほどで予約できるので、ぜひお気軽にご利用ください。オンラインでの利用も可能となっています。

    侍エンジニア塾
    無料体験レッスンの予約はこちら

    まとめ

    Pythonの変数について紹介してきました。プログラミングをはじめてすぐに学ぶ事の多い変数ですが、意外にも奥が深いことがわかりましたね。それぞれの言語によって扱いは変わります。

    使っているプログラミング言語の流儀にあった、適切な変数の使い方を心がけましょう。

    LINEで送る
    Pocket

    最短でエンジニアを目指すなら侍エンジニア塾

    cta_under_bnr

    侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

    あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

    無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

    無料体験レッスンの詳細はこちら

    書いた人

    ryo

    おすすめコンテンツ

    あなたにぴったりなプログラミング学習プランを無料で診断!

    プログラミング学習の効率を劇的に上げる学習メソッドを解説