初めての投稿です。
プログラミング学習中、複数の関数をどう使い分けたらいいか迷うこと、ありませんか? 特に、コマンドで関数を選びたい時、「辞書(ハッシュ)ってどう使うんだっけ…?」って私はよく頭が真っ白になります!
この記事では私の備忘録として、「関数の辞書化」 について説明します!
1. そもそも「関数の辞書化」って何?
一言で言うと、関数を辞書に登録して、キー(名前)で呼び出すテクニックになります。
例えば、電卓アプリを作りたいとしましょう。足し算、引き算、掛け算、割り算…たくさんの関数が必要になります。
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
if y == 0:
return "Error: 0で割れません!"
return x / y
これらの関数を、電話帳のように整理したい! そんな時に、辞書が役に立ちます。
2. 辞書にまとめてみよう!
辞書は、{キー: 値}
の形でデータを保存します。関数の場合、キーに関数名(文字列)、値に関数そのものを入れましょう。
functions = {
"add": add,
"subtract": subtract,
"multiply": multiply,
"divide": divide
}
これで、functions["add"]
と書けば、足し算の関数 add
を呼び出せるようになります。
3. コマンドで関数を選んで実行!
ターミナルから関数を選んで実行するコードを書きましょう。
def main():
print("使える関数: add, subtract, multiply, divide")
command = input("どの関数を使いますか?: ")
if command not in functions:
print("Error: そんな関数はありません!")
return
try:
num1 = float(input("数字1を入力: "))
num2 = float(input("数字2を入力: "))
except ValueError:
print("Error: 数字を入力してください!")
return
result = functions[command](num1, num2) # 辞書から関数を呼び出し
print("結果:", result)
if __name__ == "__main__":
main()
コード解説
-
print("使える関数: add, subtract, multiply, divide")
: 使える関数を示す。 -
command = input("どの関数を使う?: ")
: ターミナルから関数名を入力してもらう。 -
if command not in functions:
: 入力された関数名が、辞書に登録されているかチェックする。 -
result = functions[command](num1, num2)
: ここがポイント! 辞書functions
から、入力された名前の関数を取り出し、引数num1
とnum2
を渡して実行できます。
4. 実行してみよう!
上記のコードを calculator.py
などの名前で保存して、ターミナルで実行しましょう!
python calculator.py
指示に従って関数名と数字を入力すれば、計算結果が表示されます!
最後に
関数の辞書化は、コードを整理する強力な武器です。最初は難しく感じるかもしれませんが、実際に手を動かしてみれば、きっと理解できるはずです。
この記事が、悩んでいる方の助けになれば嬉しいです。
今後も発信していきます。よろしくお願いします!