【Python】プログラミングの基本|変数・関数・クラスとインスタンス
Pythonにおけるプログラミングの基本を解説します。
最初のうちは主に文法の説明です。
忘れてしまったらこのブログを確認してみてください!!
はじめに
このブログではJupyter Notebookを使います。
ダウンロードの仕方や、使い方はこちらのブログから↓
変数
変数の定義と命名規則
変数はデータを一時的に保存するための名前付きの記憶場所です。Pythonでは、変数を定義する際に特別なキーワードは必要なく、単に変数名を使って値を割り当てます。
- 英文字(a-z, A-Z)、数字(0-9)、およびアンダースコア(_)を使用
- 数字で始めてはいけない
- 大文字と小文字は区別される(例:
var
とVar
は別の変数) - 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__
メソッドは、コンストラクタとも呼ばれ、クラスのインスタンスが生成されるときに自動的に呼び出される特別なメソッドです。主な役割は、インスタンス変数の初期化を行うことです。
データを取り出す際は、ドット記号を使います
1my_dog = Dog("Buddy", 3)
2print(my_dog.name) # "Buddy"と表示される
3print(my_dog.age) # 3と表示される
4my_dog.bark() # "Buddy says woof!"と表示される
まとめ
オブジェクト指向プログラミングの基本概念を理解し、クラスとインスタンス、クラス変数とインスタンス変数を正しく使うことで、複雑なプログラムをより整理された形で構築できます!!