Pythonは強力でありながら簡潔な文法を持つプログラミング言語です。このブログでは、Pythonの基礎から応用までを段階的に解説していきます。初心者からベテランまで、Pythonの魅力に触れていただければ幸いです。
1. Pythonとは
Python(パイソン)は、ギリシア神話のへびに由来するプログラミング言語です。Pythonは近年広く使われており、インタプリタ言語の特徴を持っています。C言語とは異なり、Pythonはソースコードを逐次解釈しながら実行する方式を採用しています。
Pythonは以下のような特徴を持っています。
- 対話型のインタプリタ言語であるため、ソースコードの実行結果を直接確認できます。
- シンプルで読みやすい文法を持つため、初学者にも理解しやすいです。
- 豊富なライブラリやモジュールが提供されており、様々な用途に使うことができます。
- プラットフォームの制約が少ないため、Windows、Mac、Linuxなどさまざまな環境で利用できます。
PythonはWebサイト(https://www.python.org)から無料でダウンロード・インストールすることができます。インタプリタや標準ライブラリのソースコードやバイナリファイルなども配布されているため、柔軟なモジュールの組み合わせやカスタマイズが可能です。
近年では、Pythonはデータ分析、Web開発、機械学習、自然言語処理など幅広い分野で利用されています。Pythonの特徴や豊富なライブラリを活用して、効率的なプログラミングを行うことができます。
以上がPythonについての概要です。次のセクションではPythonのインストール方法について説明します。
2. Pythonのインストール
Python3の開発環境は、標準のWindowsにはインストールされていません。Mac OSには、旧バージョンのPython2が入っている場合がありますが、最新のPython3をダウンロード・インストールする必要があります。
ただし、情報処理教室のWindows PCには既にPython3がインストールされているため、インストール作業は必要ありません。
Pythonのインストール手順の詳細については、「Pythonインストールの説明」という外部サイトを参照してください。
動作確認
インストールが完了したら、以下の手順でPythonのインタプリタが正しく動作するか確認してみましょう。
- コマンドプロンプト(Windows)またはターミナル(Mac OS, Linux)を起動します。
- Windowsの場合:
bash
Z:.windows2000> python
Python 3.9.12 (main, Apr 4 2022, 05:22:27) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Warning:(省略)
Type "help", "copyright", "credits" or "license" for more information.
- Macの場合:
bash
% python3
Python 3.10.6 (v3.10.6:9c7b4bd164, Aug 1 2022, 17:13:48) [Clang 13.0.0 (clang-1300.0.29.30)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
入力プロンプトが表示されれば正常です。
また、VSCodeのターミナルでも同様に実行できます。
- 古いバージョンのMac OSを使用している場合は、Python2が起動する場合があるので注意しましょう。
- インタプリタが起動し、プログラムの入力と実行が可能な状態になります。
これでPythonのインストールと動作確認の手順が完了しました。
(以降の手順は省略します)
3. Pythonの基本構文
Pythonはインタプリタ言語であり、処理を1行ごとにインタラクティブに入力・実行することができます。Pythonの基本構文には以下のような要素があります。
条件文
条件文は、もし〜ならばのような条件に応じてプログラムの実行を分岐させるための文法です。以下のような形式で使用します。
python
if 条件式1:
実行する文1
elif 条件式2:
実行する文2
else:
実行する文3
条件式は、真(True)または偽(False)の結果を返す式です。複数の条件がある場合は、elif
キーワードを使用して追加の条件を指定することができます。
ループ文
ループ文は、プログラムの一部の実行を繰り返すための文法です。Pythonには、while
ループとfor
ループの2つの主要なタイプがあります。
whileループ
while
ループは、指定した条件が真である限り、一連の文を繰り返し実行します。以下のような形式で使用します。
python
while 条件式:
実行する文
ループの中で使用する変数を更新することを忘れないようにしてください。必要に応じてbreak
キーワードを使用してループを終了することもできます。
forループ
for
ループは、反復可能なオブジェクト(リスト、タプル、辞書など)の要素を反復して処理するための文法です。以下のような形式で使用します。
python
for 変数 in 反復可能なオブジェクト:
実行する文
変数は、反復可能なオブジェクト内の各要素に対するイテレーションごとに異なる値を持ちます。
関数
関数は、複数の文をグループ化して特定のタスクまたは操作を実行するために使用されます。関数を定義するには、def
キーワードを使用します。
python
def 関数名(引数):
実行する文
return 戻り値
関数は、関数名と引数などの情報を指定して呼び出すことができます。関数内で処理を実行し、必要に応じてreturn
キーワードを使用して結果を返すこともできます。
例外処理
例外処理は、実行中にエラーが発生した場合にプログラムの実行を続行するための構文です。例外処理は、try
ブロックとexcept
ブロックを使用して定義されます。
python
try:
実行する文
except 例外の型:
例外が発生した場合の処理
try
ブロック内でエラーが発生すると、対応するexcept
ブロックが実行されます。異なる例外のタイプに対して複数のexcept
ブロックを指定することもできます。
Pythonの基本構文には他にも多くの要素がありますが、ここではいくつかの主要な構文を紹介しました。詳細な情報や新たな概念については、公式ドキュメントや他のリソースを参照して学習することをお勧めします。
4. データ型と変数
データ型と変数は、プログラミングにおいて非常に重要な概念です。データ型は、あるデータの性質や種類を表すものであり、変数はそれらのデータを格納するための箱やコンテナのようなものです。Pythonでは、データ型を指定する必要がなく、実行時に動的にデータ型が決まります。これは、C言語などとは異なる特徴です。
4.1 データ型の種類
Pythonには、主なデータ型として以下があります。
- 整数型(int): 整数値を表します。
- 浮動小数点型(float): 小数値を表します。
- 文字列型(str): 文字列を表します。シングルクォートまたはダブルクォートで囲んで表記します。
- リスト型(list): 複数の要素を格納することができる配列のようなものです。
- タプル型(tuple): リストと似たデータ型ですが、要素の変更ができないという違いがあります。
- 辞書型(dictionary): キーと値をセットで格納することができるデータ型です。
これらのデータ型は、それぞれ異なる種類のデータを表現する際に利用されます。また、Pythonではクラスという概念があり、これらのデータ型はクラスとして定義されています。
4.2 変数の宣言と代入
変数を使ってデータを格納するには、まず変数を宣言し、その後に代入を行います。Pythonでは変数の宣言は必要ありませんので、変数名を指定して直接代入することができます。例えば、次のように変数を宣言し、値を代入することができます。
python
i = 10
上記の例では、変数名として”i”を指定し、整数値の”10″を代入しています。データ型の指定は不要です。
宣言と代入が完了した変数は、後からその値を参照することができます。例えば、次のようにして変数の値を出力することができます。
python
print(i)
上記の例では、変数”i”の値を表示しています。
4.3 インタープリタの型推論
Pythonでは、実行時に変数のデータ型が自動的に決定されます。そのため、変数の型名を事前に指定する必要はありません。また、変数の宣言も必要ありません。
例えば、次のようなコードでは、変数”i”に最初に整数値を代入し、その後に文字列を代入しています。
python
i = 10 # 整数
print(i)
i = 'Hello' # 文字列
print(i)
実行結果は以下の通りになります。
10
Hello
このように、変数には異なるデータ型を代入することができます。しかし、注意が必要なのは、データ型によっては演算ができない場合があることです。例えば、文字列の変数と整数の変数を足し算しようとすると、エラーが発生します。
python
i = 'OMG!'
print(i + 1) # エラーが発生
エラーメッセージは次のようになります。
TypeError: can only concatenate str (not "int") to str
このように、データ型によっては演算ができないため、注意が必要です。
4.4 リストの使用
リストは、複数の要素を格納することができるデータ型です。Pythonでは、リストの宣言には角かっこ([])を使用し、要素をカンマ区切りで指定します。リストの要素には異なるデータ型を混在させることができます。
例えば、次のようにしてリストを宣言し、要素を指定することができます。
python
a = [10, 20, 30] # リストの初期化
print('a =', a)
上記の例では、変数”a”にリストを代入しています。リストの要素はそれぞれ10, 20, 30となっています。このようにリストの要素は、角かっこの中にカンマ区切りで指定します。
また、リストの要素へのアクセスは、リスト名の後に角かっこを使用して指定します。添字は0から始まり、途中の要素にアクセスする場合は、それぞれの要素に対応する添字を指定します。
例えば、次のようにリストの要素にアクセスすることができます。
python
print('a[0] =', a[0]) # 最初の要素にアクセス
print('a[1] =', a[1]) # 2番目の要素にアクセス
実行結果は以下の通りになります。
a[0] = 10
a[1] = 20
リストの要素は変更可能です。例えば、次のようにリストの要素を変更することができます。
python
a[0] = 100
上記の例では、最初の要素の値を100に変更しています。
リストの要素を追加する場合は、リスト名の後に角かっこを使用して要素を指定し、値を代入します。例えば、次のようにリストの末尾に要素を追加することができます。
python
a.append(40) # 末尾に要素を追加
リストの長さや型は、それぞれlen()関数やtype()関数を使用して取得することができます。例えば、次のようにしてリストの長さを取得することができます。
python
print('len(a) =', len(a))
上記の例では、リスト”a”の長さを表示しています。
4.5 インデックスと範囲
リストの要素にアクセスする際は、インデックス(添字)と呼ばれる値を使用します。Pythonでは、インデックスの始まりが0となります。また、負のインデックスを使用することもできます。負のインデックスを使用すると、末尾から要素にアクセスすることができます。
例えば、次のようにしてリストの末尾から要素にアクセスすることができます。
python
print('a[-1] =', a[-1]) # 最後の要素にアクセス
Pythonでは、リストの範囲外にアクセスしようとするとエラーが発生します。例えば、次のようなコードでは、リストの範囲をはみ出して要素にアクセスしているためエラーが発生します。
python
print('a[3] =', a[3]) # エラーが発生
エラーメッセージは以下の通りです。
IndexError: list index out of range
4.6 文字列の使用
Pythonでは、文字列を扱う際にも文字列型(str)を使用します。文字列はシングルクォート(‘)またはダブルクォート(“)で囲んで表記します。
例えば、次のようにして文字列を宣言し、変数に代入することができます。
python
s = "Hello, World!"
上記の例では、変数”s”に文字列を代入しています。このようにすることで、後から文字列を参照することができます。また、文字列の連結も可能です。
例えば、次のようにして文字列の連結を行うことができます。
python
greeting = "Hello"
name = "Alice"
message = greeting + " " + name
print(message)
上記の例では、変数”greeting”と”name”の値を連結して、変数”message”に代入しています。最後に、変数”message”の値を出力しています。
文字列の長さは、len()関数を使用して取得することができます。
python
print(len(s))
上記の例では、文字列”s”の長さを出力しています。
4.7 フォーマット出力
Pythonでは、C言語のprintf()関数のような書式指定出力もサポートされています。書式指定出力では、%演算子を使用して、出力する文字列中に変数の値を埋め込むことができます。
次の例では、変数”name”と”age”の値をフォーマット出力しています。
python
name = "Alice"
age = 25
print("%s is %d years old." % (name, age))
上記の例では、%sと%dはそれぞれ変数”name”と”age”の値を指定するためのプレースホルダーです。%演算子の後にカンマ区切りで変数を指定することで、フォーマット出力を行うことができます。
4.8 まとめ
このセクションでは、Pythonにおいてデータ型と変数の基本的な使い方について学びました。データ型は、データの性質や種類を表わすものであり、Pythonでは様々なデータ型を使用することができます。また、変数はデータを格納するためのものであり、データ型を指定する必要はありません。変数の値は後から変更することもできます。
5. 演算子と演算
演算子(operators)は、Pythonで数値や文字列などの値を組み合わせて演算するために使用されます。以下にいくつかの一般的な演算子の例を紹介します。
算術演算子
算術演算子は、数値の計算に使用されます。
- 加算演算子(+): 2つの値を足し合わせます。
- 減算演算子(-): 1つの値から別の値を引きます。
- 乗算演算子(*): 2つの値を掛け合わせます。
- 除算演算子(/): 1つの値をもう一つの値で割ります。
- 余り演算子(%): 1つの値をもう一つの値で割った余りを求めます。
- 整数除算演算子(//): 1つの値をもう一つの値で割った結果の整数部分を求めます。
- べき乗演算子(**): 1つの値をもう一つの値でべき乗します。
python
print(2 + 3) # 加算演算子
print(5 - 2) # 減算演算子
print(3 * 4) # 乗算演算子
print(10 / 2) # 除算演算子
print(10 % 3) # 余り演算子
print(10 // 3) # 整数除算演算子
print(2 ** 3) # べき乗演算子
実行結果:
5
3
12
5.0
1
3
8
比較演算子
比較演算子は、値の大小や等しさを比較するために使用されます。
- 等号演算子(==): 2つの値が等しいかどうかを判定します。
- 不等号演算子(!=): 2つの値が等しくないかどうかを判定します。
- 大なり演算子(>): 1つの値がもう一つの値より大きいかどうかを判定します。
- 小なり演算子(<): 1つの値がもう一つの値より小さいかどうかを判定します。
- 以上演算子(>=): 1つの値がもう一つの値以上かどうかを判定します。
- 以下演算子(<=): 1つの値がもう一つの値以下かどうかを判定します。
python
print(2 > 3) # 大なり演算子
print(2 < 3) # 小なり演算子
print(2 == 3) # 等号演算子
print(2 != 3) # 不等号演算子
実行結果:
False
True
False
True
論理演算子
論理演算子は、論理式を評価するために使用されます。
- 論理和演算子(or): いずれかの論理式がTrueである場合にTrueとなります。
- 論理積演算子(and): 全ての論理式がTrueである場合にTrueとなります。
- 否定演算子(not): 論理式の結果を反転させます。
python
print(1 > 2 or 1 < 2) # 論理和演算子
print(not True) # 否定演算子
実行結果:
True
False
条件文
条件文は、条件式の結果に応じて処理を分岐させるために使用されます。Pythonでは、条件文をif文やelif文、else文を組み合わせて記述します。
python
i = int(input('i=?'))
if i > 0:
print('正です.')
elif i < 0:
print('負です.')
else:
print('ゼロです.')
print('おわり.')
実行結果:
i=?10
正です.
おわり.
Pythonの条件文では、コードブロックをインデント(字下げ)で表現します。インデントの正しい位置がないとエラーとなるため、注意が必要です。
以上が演算子と演算についての基本的な説明です。
(参考文献: “http://www.tohoho-web.com/python/index.htm”)
まとめ
Pythonは、シンプルな構文と豊富な標準ライブラリを持つプログラミング言語です。Pythonはインタプリタ型の言語なため、ソースコードを逐次的に実行でき、対話型の開発が可能です。また、Windows、Mac、Linuxといったさまざまな環境で利用できるため、汎用性が高いのが特徴です。Pythonはデータ分析や機械学習、Webアプリケーション開発など、幅広い分野で活用されており、これからも人気の高まることが期待されています。初心者にも取り組みやすい言語ですので、この機会にぜひPythonの世界を探索してみてください。