#Python入門
自分がPythonを学習し始めて数か月が経ちました。最初はAIとか機械学習とか面白そうと思って学習し始めたのですが、クローリングとスクレイピングに興味がわき前回作ったようなヤフオク落札履歴検索ツール ヤフオク落札履歴を抽出するツールが使えます 販売、落札したい商品の適正価格がいくらか事前に知りたい方にやら記事にはしてないけどTwitterで特定ユーザーのフォロワーをフォローするツールを作ったりしてました。
ある程度クローリング&スクレピングの技術はそこそこ使えるようになったので、今まで学習したことを忘れた時の為や、誰かが学習する時に役に立つ様に基本からアウトプットすることにしました。内容は学習するときに買った本を基に作成します。
##変数について
Pythonにも例によって変数というものがあります。「変数」とはPCのメモリ上に一時的にデータを記憶しておく為の入れ物のようなものの事です。数値や文字に限らず画像や映像、音声など様々なデータを記憶することが出来ます。
###変数を使うには?
Pythonで変数にデータを記憶するには「変数名 = 値」と記述します(よく変数を定義すると言います)。プログラム上では以下のように書きます。
price = 1200 # ← 変数「price」に1200を代入
print(price) # ← 変数「price」の値を参照し画面に出力
この様にすることで変数に値を代入することができます。 変数名にはアルファベット(aからz、AからZ)と数字(0から9)、アンダースコア(_)に加えて、漢字やひらがな・カタカナ、ギリシャ文字が使えます。ただし、数字から始まる変数名は使えません。 ※基本的に変数名はアルファベット、数字、アンダースコアのみを使用します。これはPythonがマルチプラットフォームで動作するため、Windows、macOS、Linuxなど異なるプラットフォームでは漢字コードが異なる為、漢字などの全角文字を使うと意図しない漢字になる(文字化けとも)のでアルファベット、数字、アンダースコア等の半角文字を使用するのが通例となっています。
###使う事の出来ない変数
- 数字で始まる名前
- アンダースコア(_)から始まる名前
- 予約語
アンダースコアから始まる名前は特別な用途で利用されることが決まっています。文法的には使用できますが、基本的に使用しないように注意してください。
予約語についてはforやifなどPythonの命令として使われている語句があり、これらは変数名として使用することが出来ません。これには以下のような語句があります。
###変数を使うと分かりやすくなる
ところで、なぜ変数をつかうのでしょうか?変数を使うとプログラムを分かりやすくできます。数字だらけだったプログラムに意味を与えることが出来ます。 例えば自動車で東京から大阪まで何時間かかるかを計算して表示するプログラムがあるとします。これを変数を使わないで作ると以下のようになります。 速度は時速80km、距離は507.5kmとします。
####東京から大阪まで何時間?
print(507.5 / 80)
表示するだけなので1行で済みますが、これではなにをしたいのかが分かりません。さらに時速60kmの場合、時速100kmの場合や大阪ではなく、広島や福岡など目的地が変わった場合等、変更箇所が分かりにくいです。 簡単なプログラムではマシですが、大きなプロジェクトになるとそうはいきません。変数の数も求める結果も、もっと複雑で大きなものになります。その時に例のようなプログラムでは汎用性もなく対応も取り切れません。 この例を変数を使うと以下のようになります。
東京から大阪まで何時間?
kyori = 507.5
jisoku = 80
jikan = kyori / jisoku
print(jikan)
この様に長くなりますが、それぞれの値が何を指しているか分かりやすくなりました。距離が変われば「kyori」の値、時速が変われば「jisoku」の値を変えればいいという事がパッと見で分かるようになりました。
###変数の有効期限
ところで、一度変数に代入された値はいつまで使う事が出来るのでしょうか? 勿論、プログラムの終了までは使う事が出来ます。しかし、変数にはスコープと呼ばれる有効範囲というものが存在します。まだこの時点では意識する必要はないでしょう。ただ、スコープと呼ばれるものがあるという事だけは覚えておいてください。