見出し画像

Python中級編:魔法使いのスキルアップメニュー

Python中級編:魔法使いのスキルアップメニュー

こんにちは、あなたのPython魔法の先生、あい@AI魔法使い🪄です!今日は、Pythonの中級知識を学び、魔法の力をさらに引き出すためのレッスンを始めましょう。準備はいいですか?魔法の世界へようこそ!


第1章:リストの魔法

1.1 リスト内包表記

リスト内包表記は、リストを効率的に作成する魔法の呪文です。例えば、1から10までの2乗のリストを作りましょう。

squares = [x**2 for x in range(1, 11)]
print(squares)  # 魔法の結果はこうなります: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

1.2 リストのマージ

リストを結合するには、`+`演算子を使うか、`extend()`メソッドを使います。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = list1 + list2
# または
list1.extend(list2)
print(merged_list)  # 魔法の結果はこうなります: [1, 2, 3, 4, 5, 6]

第2章:ジェネレータの魔法

2.1 ジェネレータ式

ジェネレータは、魔法の力を節約するために使われます。リスト内包表記と似ていますが、メモリ効率が良いです。

squares_generator = (x**2 for x in range(1, 11))
for square in squares_generator:
    print(square)  # 魔法の結果はこうなります: 1から10までの2乗が表示されます

2.2 ジェネレータ関数

ジェネレータ関数は、`yield`キーワードを使って定義されます。

def fibonacci(n):
    a, b = 0, 1
    for _ in range(n):
        yield a
        a, b = b, a + b
  
for number in fibonacci(10):
    print(number)  # 魔法の結果はこうなります: フィボナッチ数列の最初の10個の数字が表示されます

第3章:クラスの魔法

3.1 クラスの定義

クラスは、魔法使いのスキルを体系化するためのものです。

class Wizard:
    def __init__(self, name, level):
        self.name = name
        self.level = level
  
    def cast_spell(self, spell_name):
        return f"{self.name}がレベル{self.level}{spell_name}を唱えた!"
  
harry = Wizard("ハリー", 10)
print(harry.cast_spell("炎の矢"))  # 魔法の結果はこうなります: "ハリーがレベル10の炎の矢を唱えた!"

3.2 クラスの継承

継承は、既存のクラスを拡張するための魔法です。

class DarkWizard(Wizard):
    def __init__(self, name, level, dark_power):
        super().__init__(name, level)
        self.dark_power = dark_power
  
    def cast_dark_spell(self, spell_name):
        return f"{self.name}が暗黒力{self.dark_power}{spell_name}を唱えた!"
  
voldemort = DarkWizard("ヴォルデモート", 100, 999)
print(voldemort.cast_dark_spell("アバドアール"))  # 魔法の結果はこうなります: "ヴォルデモートが暗黒力999でアバドアールを唱えた!"

第4章:例外処理の魔法

4.1 try-except-finally

例外処理は、魔法の失敗をキャッチするためのものです。

try:
    print(5 / 0)  # これは魔法が失敗する!
except ZeroDivisionError:
    print("ああ、0で割ることはできません!")
finally:
    print("魔法は終了しました。")

第5章:デコレータの魔法

5.1 関数デコレータ

デコレータは、関数に追加の機能を付けるための魔法です。

def timer(func):
    def wrapper(*args, **kwargs):
        import time
        start = time.time()
        result = func(*args, **kwargs)
        end = time.time()
        print(f"{func.__name__}{end - start}秒かかりました。")
        return result
    return wrapper
  
@timer
def slow_spell(n):
    import time
    time.sleep(n)  # 魔法が遅い!
  
slow_spell(2)  # 魔法の結果はこうなります: "slow_spellは2.000000秒かかりました。"

これで、Pythonの中級知識を学ぶことができました。魔法の世界は広大ですが、これらのスキルを使って、あなたも優れた魔法使いになることができます。次回は、さらに高度な魔法を学びましょう!それまで、魔法の力を大切にしてください。さようなら、魔法使いの友よ!🪄✨

いいなと思ったら応援しよう!