Bot プログラミングスキル 書籍・論文・web記事

開発記録#112(2024/10/9)「Pythonの話.1 静的型付けと動的型付け」

2024年10月9日

前回の記事に引き続き、今回も仮想通貨botの開発状況をまとめていきます。

Yodaka

今回からpythonの基礎理解の学習まとめをしていきます。

Pythonの特徴

Pythonはプログラミング言語の一つで、動的型付け言語として分類されます。

他のプログラミング言語と比べて書きやすく読みやすいという特徴があります。

コードを書くためのルール(構文)がシンプルで、変数のデータ構造が一目見て分かりやすいため、とにかく開発を始めてみたいプログラミング初心者が触れる言語としては、有力候補の一つになります。

また、さまざまな拡張機能が充実しているため応用が効きやすく、一旦基礎を理解するとデータ分析や機械学習などの発展的な技術を使えるようになります。

Pythonでは、リスト型と辞書型の変数がよく使われます。[ ](角括弧)で括られているデータはリスト型と呼ばれます。リスト内のデータは,(カンマ)で括られています。

一方、{ }(波括弧)と[ ](角括弧)で括られているデータは辞書型と呼ばれ、一意のキーとそれに対応するバリューのセットが複数まとめられています。こちらも同様に、辞書内のデータは,(カンマ)で区切られます。

Yodaka

リストや辞書などのデータ構造に関しては、別の記事で詳しく解説します。

変数

プログラミングにおける変数は、データや値を一時的に保存するための容器のようなものです。変数には名前があり、その名前を使用して保存されたデータにアクセスしたり、変更したりすることができます。変数を使うことで、プログラムが動的にデータを扱い、計算を行ったり、条件に応じて異なるアクションを取ったりすることが可能になります。

例えば、プログラムがユーザーから年齢を入力してもらって、それに基づいて何かを判断する場合、その年齢を保存するために変数を使用します。Pythonでの例を以下に示します:

age = input("あなたの年齢を教えてください: ")
age = int(age)  # 入力された値を整数に変換
if age >= 18:
    print("あなたは成人です。")
else:
    print("あなたは未成年です。")

この例では、age という名前の変数を使ってユーザーの入力を保持し、条件に応じて異なるメッセージを表示しています。変数はこのようにしてプログラム内で情報を扱うための基本的なツールの一つです。

静的型付け言語・動的型付け言語

静的型付け言語と動的型付け言語の違いは、主にプログラムの実行前に型をチェックするか、実行時に型をチェックするかにあります。以下でそれぞれの特徴を詳しく説明します。

静的型付け言語

静的型付け言語では、変数の型はコンパイル時に決定されます。これにより、実行前に型の不一致によるエラーを検出することが可能です。静的型付け言語のプログラムは、型が正しく定義されていることが保証されるため、一般により安全であり、大規模なプロジェクトやチームでの開発に適しています。代表的な静的型付け言語にはC、C++、Java、Rust、TypeScript(JavaScriptのスーパーセット)などがあります。

静的型付け言語の利点

  • コンパイル時の型チェックにより、型関連のエラーを早期に発見できる。
  • 実行時のパフォーマンスが向上することが多い。
  • IDEやツールが提供する自動補完やリファクタリングが強力。

動的型付け言語

動的型付け言語では、変数の型はプログラムが実行されるときに決定されます。これにより、同一の変数に異なる型のデータを代入する柔軟性が得られるため、プロトタイピングや小規模なプロジェクトに適しています。代表的な動的型付け言語にはPython、Ruby、JavaScript、PHPなどがあります。

動的型付け言語の利点

  • コードが簡潔で、書きやすく、読みやすい。
  • 型をあまり意識せずにプログラミングが可能。
  • 実行時に型が決定されるため、より動的で柔軟なコーディングが可能。

比較

  • 型の安全性:静的型付けでは型の安全性が高く、動的型付けでは柔軟性が高い。
  • 開発速度:動的型付け言語は型宣言が不要なため、初期の開発速度が速くなることがあります。
  • パフォーマンス:静的型付け言語は、型情報がコンパイル時に利用可能なため、最適化が進みやすく、一般に実行速度が速い。
  • 適用領域:静的型付けは大規模で複雑なシステムや長期間にわたるプロジェクトに適し、動的型付けは小規模なプロジェクトやスクリプト書きに向いていることが多い。

各言語の特性を理解し、プロジェクトのニーズに最適な言語を選択することが重要です。

代入

Yodaka

プログラミングにおける代入は、データを操作するための非常に基本的で重要な手段です。私はこの概念を理解してから、コードの読み書きがラクになりました。

プログラミング言語における「代入」は、ある値を変数に割り当てる操作を指します。代入を行うことで、変数に具体的なデータを保存し、プログラムの実行中にそのデータを使用できるようになります。

代入の基本的な概念

代入は通常、等号(=)を使用して行われます。左側には代入する変数が、右側には代入する値が配置されます。以下は代入の基本的な形式です:

変数 = 値

以下のPythonの例では、いくつかの基本的な代入を示しています:

x = 10        # xに10を代入
name = "Alice"  # nameに"Alice"を代入
y = x + 5     # yにxの値に5を加えた結果を代入

この例では、xname にそれぞれ数値と文字列が代入され、y には x の値に 5 を加えた結果が代入されています。

代入の役割

  • データの保持:変数に値を代入することで、その値をプログラムのどこかで再利用できます。
  • 計算の途中結果の保存:複雑な計算を段階的に行い、その結果を変数に保存しておくことで、後の計算で使用できます。
  • 状態の管理:プログラムの実行状態を変数に代入することで、その状態に基づいて異なる処理を行うことができます。

代入の注意点

  • 型の適合性:静的型付け言語では、変数の型と代入される値の型が一致している必要があります。一方、動的型付け言語では実行時に型が決定されるため、同一の変数に異なる型の値を代入することが可能です。
  • 参照の代入:一部の言語では、オブジェクトや配列などを代入する際に、その値そのものではなく参照が代入されるため、元のデータに対する変更が代入先の変数にも反映されることがあります。

まとめ

今回は、Pythonの特徴を静的型付け・動的型付けという観点からまとめました。

シンプルなロジックを実装するのであればPythonのみでも十分です。

しかし、マシンに負荷がかかるような演算をさせる場合には、Rustなどの静的型付け言語を用いるという方法が推奨されます。

Yodaka

静的型付け、動的型付け、どちらの特徴も理解した上で開発を行うと良いです。

今後もこの調子で開発の状況をまとめていきます。

-Bot, プログラミングスキル, 書籍・論文・web記事