こんにちは。
前回はPythonのインストールから実際にコードを書いてテキストや計算を実行してみるところまでやりましたね。
今回は初心者が最初に知っておくべきPythonの基礎を見ていきます。何事にも土台が必要です。
インストールがまだだよという方は以下の記事を参考にセットアップを進めてみてください!
「なんか今流行ってるっぽいからPythonをやってみよう」 って思っている方は多いんじゃないかなと思います。かくいう私もそうです。 「でも今まででそれらしき経験もないのに今さらできるのかな...」とも思っていませんか? […]
それではさっそく本題に入っていきましょう。
最初に覚えておくべきことって何?
変数
変数とは?
プログラミング言語では、値を格納するために変数というものを使用します。繰り返し使いたいコードを、次使う時にまるまる同じコードを入力するのって面倒ですよね。そんな時に活躍するのが変数です。実際に例を見るのが早いですね。
test = 'Avada Kedavra'
print(test)
testという変数に「Avada Kedavra」という文字列を格納し、それをprint関数で呼び出しました。
何回も「Avada Kedavra」と入力しなくても、testという変数でいつでも呼び出すことができます。これであの忌まわしき呪文を直接入力しなくても表示させることができます。
また、変数の後ろに角括弧で番号を括る[n]と、文字列のn番目の文字を取り出すことができます。
#testに格納している文字列の1番目を取り出す(0からカウント)
test[0]
#testに格納している文字列の3番目を取り出す
test[2]
出力結果はそれぞれこんな感じ。
なんかいつものJupyterと違くね?ってなった方もいると思いますが、これはVisual Stuidio CodeというエディターでJupyter環境を作ったものです。気になったら「VSCode Jupyter」とかでググってみてね。Google先生に聞いたら以下の記事がとても参考になるとのこと。
エラーについて
では21番目の文字を出力させたらどうなるでしょうか。
こんな感じでエラーが出ます。コードを書いていて、エラーに直面することは多々あります。僕自身もまだまだなのでエラーだらけです。一見わけわからない文字列が並んでいてパニックになりそうですが、落ち着いて対処すれば問題ないです。一番下の行を見ると、「IndexError: string index out of range」とあります。インデックスとは[]内の何番目に格納されているかを表すものであり、「string index out of range」なので、「指定したインデックスは範囲外だよ」ということを示すエラーというわけです。
こうして冷静にエラー内容を読み解いて、的確なコード修正をしていきましょう。僕もエラーだらけですが気合いでエラーを乗り切ってます(笑)
変数として使ってはいけないワード
プログラミング言語には、あらかじめ用意されている変数や組み込みオブジェクトとして設定されている予約後というものが存在します。わかりやすいものだとTrueとかFalseとかがそうですね。それらを変数として使ってしまうと、本来TrueやFalseと入力して機能するはずの仕組みが機能しなくなってしまうので、予約後を変数に使うのは良くないです。
「でもどんなワードが予約後かなんて最初はわかんなくない??」
と思ったあなた、以下のコードを入力してみてください。
__import__('keyword').kwlist
こんな感じで出力できたでしょうか。なにやらいろんな単語が出てきましたね。
よく見ると間で「・・・」で省略されているように見えますね。
表示数を増減させるのはpandasというライブラリをインポートする必要があります。まだここでは触れないでおきましょう。でもせめて全部で何個あるのかだけは知りたいですよね。予約語が2000個という壮大な言葉狩りが行われているという可能性も現時点では否定できません。
データの個数を知りたい時はlenという関数を使います。関数ってなんぞやと思うかもしれませんが、printも関数です。今はprintの仲間とだけ覚えておいてください。
では、len関数を使って数を調べるついてに、毎回入力するのも面倒なので先ほどの予約語一覧を出力するコードを変数にまとめてみましょう。
#kw変数に予約語一覧を出力するコードを格納する
kw = __import__('keyword').kwlist
#格納したらkw変数を使ってlen関数に当てはめる
len(kw)
実行しました。どうやら予約後は36個あるらしいです。
変数の使い方、理解できたでしょうか?それでは次にいきます。
演算
今までは変数に文字を割り当てていましたが、数字を割り当てることも可能です。
また、変数同士の演算もできます。実際に計算してみましょう。
変数mitsubaに3を割り当てる
mitsuba = 3
print(mitsuba)
#mitsubaに1を足したものを、変数yotsubaに格納する
yotsuba = mitsuba + 1
print(yotsuba)
これを実行してみましょう。
変数mitsubaに1が代入されて、1を足したら4になるというものを実行しました。
このように、数値を代入して計算することもできます。
リスト
リストとは、複数の値を1つにまとめて扱うための仕組みです。データ分析では複数の値をまとめて扱うことが多いため、リストはとても重要になってきます。
では試しに1〜10の数字が並んでいるリストを作成してみます。リストは[]で全体を囲み、要素を「,」で区切ります。以下のようなコードで実行します。
#1〜10までの数字のリストを作成し、num_listという変数に格納する
num_list = [1,2,3,4,5,6,7,8,9,10]
print(num_list)
リストを表示させることができましたね。今度はリストの中から任意の要素を抽出してみます。
#3番目の要素を抽出
print('3番目の要素:',num_list[2])
num_listというリストの中から、3番目の要素を取り出しました。
では、作成したリストに要素の追加、削除を行ってみましょう。そのような場合、appendやremoveといったメソッドと呼ばれるものを活用します。
今回はリストに100を追加した後、10を削除することにします。
#リストに100を追加する
num_list.append(100)
print(num_list)
#リストから10を削除する
num_list.remove(10)
print(num_list)
最初の実行では100が追加されて、次にそこから10が削除されたリストになったことがわかります。このように、リストの作成や編集まで簡単にできます。
条件分岐
プログラムの基本構造として、「順次進行」「条件分岐」「繰り返し」の3つがあります。これまで書いてきたコードはこの中の「順次実行」にあたります。書いたコードを上から順に実行していくことですね。
この章では「条件分岐」を見ていきます。
真偽判定
まずはその前に真偽判定について説明します。要素同士の関係が正しく成立している(真、True)、もしくは成立していない(偽、False)かを判定するために、==とイコールを2つ用いて実行します。このような行為を真偽判定と呼び、==などを比較演算子と言います。
2020 == 2020
2021 == 2022
上段は2020と2020を値を比較し、同じ数値なのでTrueという結果が出ており、下段は2021と2022を比較し、当然値は違うのでFalseという結果になっています。
ちなみに、正しいことを示す比較演算子は==ですが、正しくないことを示す比較演算子は!=です。また、大きい小さいを示す「<,>」や複数の条件を比較するand、orなども頻出です。
2021 != 2022
2021 < 2022
(2021 > 2022) and (2019 >2020)
(2021 < 2022) or (2019 >2020)
ぜひご自分のエディターで実行してみてください。
if文を活用した条件分岐
真偽判定を理解したら、「条件分岐」について理解していきましょう。
条件分岐とは、何かしらの処理をある条件に従って、こういう場合はこの処理を、こっちの場合はこの処理をという具合に分岐させることです。if文を使って真偽判定を行い、真の場合は最初の処理が、偽の場合は2番目に指定した処理を実行する仕組みです。先ほど作成したnum_listを使ってさっそくコードを書いていきましょう。
my_num = 3
#if文を使って条件式を開始
#my_numがnum_listに入っているかどうか
if my_num in num_list:
#条件式の結果が真の場合
print('入っているよ')
else:
#条件式の結果が偽の場合
print('入っていないよ')
実行してみます。
先ほど作ったリストには3という数字は入っているので、else前の処理が実行されています。反対に、my_numに格納した数値を10,000とかで指定すると、else:以降で指定した処理が実行されます。
注意すべき点として、このコードにて行っている字下げ(インデント)はそのまま同様に実行してください。Jupyterではif:とelse:後で自動でインデントしてくれます。インデントがされていないだけでエラーが起きたりもするので、くれぐれもお気をつけください。
自分でmy_numの値を変えてみたり、条件分を変えてみたりすると徐々に条件分岐に慣れていくと思います。
まとめ
初心者がPythonを始めるにあたり、まず覚えておいた方がよいことを紹介しました。
ほかにもまだまだ覚えるべきことはたくさんありますが、ひとまずここまで抑えれば進歩していると思います。繰り返し処理などもっと難しいことも出てきますが、いっぺんに全部をマスターする必要はありません。一歩一歩地道に進んで行きましょう。
ここまでご一読いただきありがとうございました!