Python チュートリアル

目次

1. 基礎文法

1.1 コメント

# これは1行コメントです
'''
これは
複数行コメント
です
'''

1.2 変数

x = 5
y = "Hello"
print(x)  # 5
print(y)  # Hello

1.3 インデント

Pythonではインデントが重要です。ブロックを示すために使用されます。

if True:
    print("インデントされたコード")
print("インデントされていないコード")
目次に戻る

2. 制御構文

2.1 if文

x = 10
if x > 0:
    print("正の数")
elif x < 0:
    print("負の数")
else:
    print("ゼロ")

2.2 for ループ

fruits = ["りんご", "バナナ", "チェリー"]
for fruit in fruits:
    print(fruit)

2.3 while ループ

count = 0
while count < 5:
    print(count)
    count += 1

2.4 try-except文

try:
    x = 10 / 0  # ゼロ除算エラーが発生
except ZeroDivisionError:
    print("ゼロで割ることはできません")
except Exception as e:
    print(f"エラーが発生しました: {e}")
else:
    print("エラーは発生しませんでした")
finally:
    print("この部分は常に実行されます")

2.5 break と continue

# breakの例
for i in range(5):
    if i == 3:
        break
    print(i)  # 0, 1, 2 が出力される

# continueの例
for i in range(5):
    if i == 2:
        continue
    print(i)  # 0, 1, 3, 4 が出力される
目次に戻る

3. データ型

3.1 数値型

integer = 42
float_num = 3.14
complex_num = 1 + 2j

3.2 文字列

string = "Hello, World!"
multiline_string = """複数行の
文字列も
可能です"""

3.3 リスト

my_list = [1, 2, 3, "四", 5.0]
print(my_list[0])  # 1
my_list.append(6)  # [1, 2, 3, "四", 5.0, 6]

3.4 タプル

my_tuple = (1, 2, "三")
# タプルは変更不可
print(my_tuple[1])  # 2

3.5 辞書

my_dict = {"name": "Alice", "age": 30}
print(my_dict["name"])  # Alice
my_dict["city"] = "Tokyo"
目次に戻る

4. 関数

4.1 関数の定義

def greet(name):
    return f"こんにちは、{name}さん!"

print(greet("太郎"))  # こんにちは、太郎さん!

4.2 関数のパラメータ

def power(base, exponent=2):
    return base ** exponent

print(power(3))     # 9 (3^2)
print(power(2, 3))  # 8 (2^3)

4.3 戻り値

def divide(a, b):
    if b == 0:
        return "ゼロ除算エラー"
    return a / b

print(divide(10, 2))  # 5.0
print(divide(5, 0))   # ゼロ除算エラー
目次に戻る

5. クラス

5.1 クラスの定義

class Dog:
    def __init__(self, name):
        self.name = name
    
    def bark(self):
        return f"{self.name}が吠えました!"

my_dog = Dog("ポチ")
print(my_dog.bark())  # ポチが吠えました!

5.2 クラスメソッド

class Math:
    @staticmethod
    def add(x, y):
        return x + y
    
    @classmethod
    def multiply(cls, x, y):
        return x * y

print(Math.add(3, 4))       # 7
print(Math.multiply(2, 5))  # 10

5.3 継承

class Animal:
    def __init__(self, name):
        self.name = name
    
    def speak(self):
        pass

class Cat(Animal):
    def speak(self):
        return f"{self.name}がニャーと鳴きました"

my_cat = Cat("タマ")
print(my_cat.speak())  # タマがニャーと鳴きました
目次に戻る

6. モジュールとライブラリ

6.1 インポート

# モジュール全体をインポート
import math

# 特定の関数や変数をインポート
from random import randint

# モジュールに別名をつける
import numpy as np

print(math.pi)  # 3.141592653589793
print(randint(1, 10))  # 1から10までのランダムな整数
print(np.array([1, 2, 3]))  # [1 2 3]

6.2 標準ライブラリ

import datetime
import json

# 現在の日時を取得
now = datetime.datetime.now()
print(now)  # 2023-04-22 15:30:45.123456

# JSONデータの処理
data = {'name': 'John', 'age': 30}
json_string = json.dumps(data)
print(json_string)  # {"name": "John", "age": 30}

6.3 サードパーティライブラリ

# 注意: これらのライブラリは事前にインストールする必要があります
# pip install requests pandas matplotlib

import requests
import pandas as pd
import matplotlib.pyplot as plt

# Webページの取得
response = requests.get('https://api.example.com/data')
print(response.status_code)  # 200

# データ分析
df = pd.DataFrame({'x': [1, 2, 3], 'y': [4, 5, 6]})
print(df)

# グラフの描画
plt.plot(df['x'], df['y'])
plt.show()
目次に戻る

ヒント: Pythonの強力な機能の1つは、豊富な標準ライブラリと多数のサードパーティライブラリです。これらを活用することで、少ないコードで多くのことを実現できます。また、リスト内包表記を使うと、簡潔で読みやすいコードを書くことができます。

7. ファイルの入出力

7.1 ファイルの読み込み

# ファイルを開いて読み込む
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

# 1行ずつ読み込む
with open('example.txt', 'r') as file:
    for line in file:
        print(line.strip())

7.2 ファイルの書き込み

# ファイルに書き込む
with open('output.txt', 'w') as file:
    file.write('Hello, World!\n')
    file.write('This is a new line.')

# ファイルに追記する
with open('output.txt', 'a') as file:
    file.write('\nThis line is appended.')

7.3 withステートメント

# withステートメントを使うと、ファイルを自動的に閉じてくれる
with open('example.txt', 'r') as file:
    content = file.read()

# これは以下と同じ
file = open('example.txt', 'r')
try:
    content = file.read()
finally:
    file.close()
目次に戻る

8. リストの基本操作

8.1 リストの作成と初期化

# 空のリスト
empty_list = []

# 要素を持つリスト
numbers = [1, 2, 3, 4, 5]
fruits = ['apple', 'banana', 'orange']

# リストの要素にアクセス
print(numbers[0])  # 1
print(fruits[-1])  # 'orange'

# スライス
print(numbers[1:4])  # [2, 3, 4]
print(fruits[:2])    # ['apple', 'banana']

8.2 リストメソッド

fruits = ['apple', 'banana']

# 要素の追加
fruits.append('orange')
print(fruits)  # ['apple', 'banana', 'orange']

# 要素の挿入
fruits.insert(1, 'grape')
print(fruits)  # ['apple', 'grape', 'banana', 'orange']

# 要素の削除
removed = fruits.pop()
print(removed)  # 'orange'
print(fruits)   # ['apple', 'grape', 'banana']

# リストの結合
more_fruits = ['kiwi', 'melon']
fruits.extend(more_fruits)
print(fruits)  # ['apple', 'grape', 'banana', 'kiwi', 'melon']

# ソート
fruits.sort()
print(fruits)  # ['apple', 'banana', 'grape', 'kiwi', 'melon']

8.3 リスト内包表記

# 従来のfor文
squares = []
for i in range(10):
    squares.append(i**2)
print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# リスト内包表記
squares = [i**2 for i in range(10)]
print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# 条件付きリスト内包表記
even_squares = [i**2 for i in range(10) if i % 2 == 0]
print(even_squares)  # [0, 4, 16, 36, 64]
目次に戻る