0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

関数の辞書化について

Posted at

初めての投稿です。

プログラミング学習中、複数の関数をどう使い分けたらいいか迷うこと、ありませんか? 特に、コマンドで関数を選びたい時、「辞書(ハッシュ)ってどう使うんだっけ…?」って私はよく頭が真っ白になります!

この記事では私の備忘録として、「関数の辞書化」 について説明します!

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 から、入力された名前の関数を取り出し、引数 num1num2 を渡して実行できます。

4. 実行してみよう!

上記のコードを calculator.py などの名前で保存して、ターミナルで実行しましょう!

python calculator.py

指示に従って関数名と数字を入力すれば、計算結果が表示されます!

最後に

関数の辞書化は、コードを整理する強力な武器です。最初は難しく感じるかもしれませんが、実際に手を動かしてみれば、きっと理解できるはずです。

この記事が、悩んでいる方の助けになれば嬉しいです。
今後も発信していきます。よろしくお願いします!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?