簡単なCLIツール 計算機

【個人ブログ】開発過程と学習記録

投稿日

Typerで簡単な計算機を作ってみました!
関数は処理ごとに分け、なるべくシンプルにしています。

使用ライブラリ

import numpy as np
from typing_extensions import Annotated
from typing import List
import typer

複数の数字を一度に計算できるよう、引数にListを使ってまとめて渡せるようにしています。

足し算

@app.command(help="足し算")
def add_cal(
        numbers: Annotated[
            List[float], typer.Argument(help="計算したい数字を入力してください")
        ],
):
    if len(numbers) == 1:
       print("最低2つの数字を入力してください")
       typer.Exit()

    answer = np.sum(numbers)
    if answer == int(answer):  #整数に変換
        print(int(answer))
        return
    else:    
      print(answer)
      return

整数・小数に対応できるように型をfloatにしています。引数が1つしか渡されなかった場合は、計算せずに終了するようにしています。np.sumで合計を求めた後、結果が整数の時はintに変換しています。

引き算(以下略)

@app.command(help="引き算")
def sub_cal(
   numbers: Annotated[
            List[float], typer.Argument(help="計算したい数字を入力してください")
        ],
):
   if len(numbers) == 1:
       print("最低2つの数字を入力してください")
       typer.Exit()

   answer = np.subtract.reduce(numbers)
   if answer == int(answer):
        print(int(answer))
        return
   else:    
      print(answer)
      return

あとは似たようなコードなので省きますが、他にも指数計算、整数除算、余り計算の関数も作りました。このツール作りのおかげで、今まで知らなかったnumpyの関数を学べて良い機会でした。
Listもこの時初めて使ったので、調べる時間込みで制作時間は約5時間程かかりました。慣れてる方だと1時間以内で作れるものだと思いますが…。
最後にパスワード生成ツールを作ったので次の記事で紹介します!

最後まで読んでいただきありがとうございました!


コメント

タイトルとURLをコピーしました