Python(プログラミング)の基本

どうも、たぬきねこです。

今回はPythonの基本事項を簡単にまとめてみようと思います。

出力:表示する

まずは単純に文字列を表示してくれるプログラムを作ってみます。

printというものを使います。

print("Hello World")

これを実行すると、

#=> Hello World

というように出力されます。

printには他の要素を入れても同じように出力します。

このようにprintを使うことで、変数などを出力できるようになります。

コメント

ソースコードにメモ代わりにコメントを残すことができます。

コメントしたい行の最初に「#」をつけます。

例えばこんな感じに、

# コメント(この行は無視されます)
print("コメントアウトの練習です")

このコードを実行すると、

コメントアウトの練習です

コメントアウトした部分は実行した際に影響されていないことがわかります。

このコメント機能を使ってソースコードにメモをしておくと、後でソースコードを見返したときにわかりやすくなります。

変数

変数は文字通り、「変わる数」です。なので、様々な要素を入れることができます。

よく変数は箱で例えられます。箱にいろんな数などを入れて使います。

例えば、xという変数(箱)に数値を入れてみます。

x = 10
print(x)
#=> 10

printで変数を表示すると「10」と出力されます。イメージとしては以下のような感じです。

また、このxは変数なので、他の要素に変えることもできます。

x = "dog"
print(x)
#=> dog

次はdogが表示されました。変数が入れ替えられたのがわかります。

配列

配列は変数を複数つなげた物と理解してください。

データをまとめて管理した場合に使えます。

配列は[]で表現します。例えば、以下のようなものです。

arr = ["dog", "cat"]
print(arr)
#=> [dog, cat]

配列の要素は0からカウントするので、catを取り出したい場合には、配列の1の要素を取り出せます。

print(arr[1])
#=> cat

辞書

Pythonには辞書(dictionary)というデータ構造があります。

Key(鍵),Value(値)という形でデータ保存していきます。Key、Valueとも自分で決められます。イメージとしては以下のような感じです。

Key1に対してはDogが紐付けられており、Key2にはCatが紐付けられています。

では、Pythonで実装してみます。

mydict = {"Key1":"Dog",
          "Key2":"Cat"}

mydict["Key1"] #=> Dog
mydict["Key2"] #=> Cat

非常に直感的だと思います。Pythonを使うと必ず使うと思いますので、覚えておくべきです。

四則演算(足し算など)

四則演算をやってみます。かなり直感的なので、サンプルコードを出して終わります。

x = 2
y = 4

x+y  #=> 6
x-y  #=> -2
x*y  #=> 8 
x/y  #=> 0.5

とてもシンプルで直感的だと思います。

if文:場合分け

if文は場合分けに使います。

例えば、変数xが10である時と、それ以外のときの場合分けを書いてみます。

x = 10
if x == 10:  # xが10であれば
    print("xは10です")
else:        # xが10以外なら
    print("xは10ではありません")

これを実行すると、

#=> xは10です

最初にxに10代入していたので、上記のように出力します。ちなみにxに10以外の値を入れていていれば、「xは10ではありません」と出力されます。

まず最初の「if x==10:」で、xが10かどうか判定しています。もし、10ならその下のprint文を実行します。
逆に10以外なら、「else:」の下を実行します。

elif

ちなみにもう少し複雑な条件分岐もできます。

xが5の時は別の出力をするようにしてみます。

x = 5
if x == 10:
    print("xは10です")
elif x == 5:  # xが10ではなく、5なら
    print("xは5です")
else:
    print("xは10ではありません")

このようにelifを使うことで、最初のif文以外の条件の指定をすることができます。

for文:繰り返し

for文は繰り返し同じ操作したい時に使います。

まずは例を見てみましょう。

今回は配列の要素を1つ1つ取り出して表示していくプログラムを作ってみます。

animals = ["dog", "cat", "bird"]
for animal in animals:
    print(animal)

配列の最初の要素から一個ずつ取り出していきます。
以下のように出力します。

dog
cat
bird

今回のfor文は以下のようになっています。

for 要素 in 配列:
処理

関数:メソッド

関数もよく使うので非常に重要です。

関数は一言で言ってしまえば、「ある処理を行ってくれる機能」のことを言います。

例えば、あるxに対して、

  • xに1を足す
  • その後に2をかける

という処理を行う関数fを作ってみます。

「def 関数名」って関数を定義します。関数に必要な値として、引数xを与えてあげます。

そして、下で処理を行い、結果をreturn で返します。これを返り値と言います。

そして、作った関数を呼んでみます。

関数名(引数)という形で呼び出します。今回はfという関数に2という引数を与えて上げます。そうすると、上述したように6というふうに出力します。

クラスとインスタンス

オブジェクト指向では非常に重要なクラスとインスタンスについて説明していきます。

クラス

まず、クラスですが、これはある物の性質や機能が記述してある設計図です。

例えば、車クラスを考えてみますと、

  • 車クラス
    • 属性
      • ガソリン量
      • ナンバー
      • 車種
    • 機能(関数、メソッド)
      • 走る(アクセル)
      • 止まる(ブレーキ)

といった形で記述できます。機能はメソッドのことですね。

では、実際にPythonで車クラスを書いてみましょう

class Car:

    def __init__(self):
        # クラスからインスタンスを生成したときに呼び出される
        self.number = -1    # numberの初期値
        self.gasoline = 1000 # ガソリンの量

    def set_number(self, number):
        # ナンバーを付ける
        self.number = number

    def get_number(self):
        # ナンバーを取得する
        return self.number
        
    def add_gasoline(self, add_value):
        # ガソリンを給油する
        self.gasoline = self.gasoline + add_value

    def go(self):
        # 車を進める処理を書く
        print("go")

    def stop(self):
        # 車を止める処理を各
        print("stop")

少しずつ解説していきます。

まず、最初の

class Car:

で、車クラスの定義をします。

そして、次の

def __init__(self):
        # クラスからインスタンスを生成したときに呼び出される
        self.number = -1    # numberの初期値
        self.gasoline = 1000 # ガソリンの量

ですが、これはクラスを用いて、インスタンス(実体)を生成する時に呼び出される関数です。
そして、下のself.変数名は各インスタンス毎の変数(インスタンス変数)を表しています。ちなみにインスタンスに関しては、下の章でまた説明します。

次に以下のようなコードはすべて関数(機能)です。インスタンスから使うことができます。

   def set_number(self, number):
        # ナンバーを付ける
        self.number = number

クラスからインスタンスを生成してみる

先程定義したCarクラスからインスタンス(実体)を生成してみます。

mycar = Car()

簡単ですね。これで、mycarという車がCarクラスを元に実体化されました。

で、先程定義したメソッドなどは以下のように使うことができます。

mycar.get_number()  #=> -1
mycar.set_number(1234) # ナンバーをセット
mycar.get_number()  #=> 1234

今回はナンバーをセットしてみました。直感的なので、慣れるととても使いやすいと思います。

今回使う代表的なモジュール

※執筆中

その他

コメント

タイトルとURLをコピーしました