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