AI・機械学習

【Python】プログラミングの基本|変数・関数・クラスとインスタンス

palm

Pythonにおけるプログラミングの基本を解説します。

最初のうちは主に文法の説明です。

忘れてしまったらこのブログを確認してみてください!!

はじめに

このブログではJupyter Notebookを使います。

ダウンロードの仕方や、使い方はこちらのブログから↓

合わせて読みたい
Jupyter Notebookの基本
Jupyter Notebookの基本

変数

変数の定義と命名規則

変数はデータを一時的に保存するための名前付きの記憶場所です。Pythonでは、変数を定義する際に特別なキーワードは必要なく、単に変数名を使って値を割り当てます

命名規則
  • 英文字(a-z, A-Z)、数字(0-9)、およびアンダースコア(_)を使用
  • 数字で始めてはいけない
  • 大文字と小文字は区別される(例: varVar は別の変数)
  • Pythonの予約語は使用できない(例: False, None, True, and, or, if, else など)
1# 変数の定義
2x = 10
3name = "John"
4is_valid = True

関数

関数の定義と呼び出し方

関数は、一連の命令をまとめて名前を付けたもので、コードの再利用性を高め、可読性を向上させます。Pythonでは、defキーワードを使用して関数を定義します。

基本的な関数の定義:
1def greet():
2    print("Hello, World!")
関数の呼び出し:
1greet()  # "Hello, World!"と表示される

引数と返り値について

関数には引数を渡すことができ、処理結果を返すことができます。

引数付きの関数の定義と呼び出し:
1def greet(name):
2    print(f"Hello, {name}!")
3
4greet("Alice")  # "Hello, Alice!"と表示される
返り値のある関数の定義と呼び出し:
1def add(a, b):
2    return a + b
3
4result = add(10, 5)
5print(result)  # 15と表示される
デフォルト引数:

引数にデフォルト値を設定することもできます。

1def greet(name="Guest"):
2    print(f"Hello, {name}!")
3
4greet()       # "Hello, Guest!"と表示される
5greet("Bob")  # "Hello, Bob!"と表示される
可変長引数:

複数の引数を受け取ることも可能です。

1def greet(*names):
2    for name in names:
3        print(f"Hello, {name}!")
4
5greet("Alice", "Bob", "Charlie")  # 各名前に対して挨拶が表示される

ラムダ関数の紹介

ラムダ関数(無名関数)は、名前を持たない短い関数です。lambdaキーワードを使用して定義します。特に、簡単な関数を短く記述したいときに便利です。

基本的なラムダ関数の定義:
1add = lambda a, b: a + b
2print(add(3, 5))  # 8と表示される
ラムダ関数の利用例:

リストの各要素に対して操作を行う際に使用できます。

1numbers = [1, 2, 3, 4, 5]
2
3# リストの各要素を2倍にする
4doubled = list(map(lambda x: x * 2, numbers))
5print(doubled)  # [2, 4, 6, 8, 10]と表示される
6
7# 偶数をフィルタリングする
8evens = list(filter(lambda x: x % 2 == 0, numbers))
9print(evens)  # [2, 4]と表示される

クラスとインスタンス

オブジェクト指向プログラミングの基本概念

オブジェクト指向プログラミング(OOP)は、データとそれに関連する操作をまとめて扱うプログラミングパラダイムです。OOPの基本概念には、クラスとインスタンス、継承、ポリモーフィズム、カプセル化などがあります。

  • クラス: オブジェクトの設計図。属性(データ)とメソッド(操作)を定義する。
  • インスタンス: クラスから生成された具体的なオブジェクト。
  • 属性: オブジェクトの状態や特性を表す変数。
  • メソッド: オブジェクトが持つ操作や振る舞いを定義する関数。

クラスの定義とインスタンス化

クラスはclassキーワードを使って定義します。以下に基本的なクラスの定義とインスタンス化の方法を示します。

クラスの定義:
1class Dog:
2    def __init__(self, name, age):
3        self.name = name  # インスタンス変数
4        self.age = age    # インスタンス変数
5    
6    def bark(self):
7        print(f"{self.name} says woof!")
クラス変数
  • クラス全体で共有されるデータを保持する変数
  • クラス定義内で直接定義する
  • 全てのインスタンスで同じ値を持つ
インスタンス変数
  • 各インスタンス固有のデータを保持する変数
  • selfキーワードを使って定義する
  • インスタンスごとに異なる値を持つ

__init__メソッド(コンストラクタ)

__init__メソッドは、コンストラクタとも呼ばれ、クラスのインスタンスが生成されるときに自動的に呼び出される特別なメソッドです。主な役割は、インスタンス変数の初期化を行うことです。

__init__メソッドの役割:
  • インスタンスが作られるときに実行される
  • インスタンス変数の初期値を設定する
  • 任意の引数を受け取り、インスタンスの初期状態を設定する

インスタンスの生成:

データを取り出す際は、ドット記号を使います

1my_dog = Dog("Buddy", 3)
2print(my_dog.name)  # "Buddy"と表示される
3print(my_dog.age)   # 3と表示される
4my_dog.bark()       # "Buddy says woof!"と表示される

まとめ

オブジェクト指向プログラミングの基本概念を理解し、クラスとインスタンス、クラス変数とインスタンス変数を正しく使うことで、複雑なプログラムをより整理された形で構築できます!!

スポンサーリンク
ABOUT ME
Palm
Palm
東京通信大学3年生
私はpalm(ぱるむ)です。お花や自然が大好きです。専門学校でWeb開発を学び、東京通信大学に編入しました。得意分野は、ウェブ開発(フロントエンド、バックエンド)や機械学習(自然言語、データ分析)です。趣味で色々デモ開発をしています。
記事URLをコピーしました