
投稿日
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時間以内で作れるものだと思いますが…。
最後にパスワード生成ツールを作ったので次の記事で紹介します!
最後まで読んでいただきありがとうございました!
コメント