Pythonにて、計算結果が2.718.....といわゆるネイピア数となったとき、計算結果の表示を実数による近似値ではなく文字列eとして表示されることはできないでしょうか?また、π(パイ)についても同じことをしたいです。
どなたか回答よろしくお願いします。
因みにjupyter notebookでpython3を扱っています。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
私は使ったことがないのですが,
https://home.hirosaki-u.ac.jp/jupyter/sympy/#基本的な定数で記載されているように,
pythonの数式処理システムであるsympy
パッケージを利用するといいのではないでしょうか?
投稿2021/12/08 15:22
総合スコア2152
0
以下のようなクラスを定義すれば、通常の数ではそのまま表示されますが、2.718281828459045と3.141592653589793だけは特別な表示を行うようになります。
python
1>>> class Float(float): 2... def __repr__(self): 3... if self == 2.718281828459045: return 'e' 4... elif self == 3.141592653589793: return 'π' 5... else: return super().__repr__() 6... 7>>> x = Float(2.718281828459045) 8>>> print(x) 9e 10>>> print(x-1) 111.718281828459045 12>>> x = Float(3.141592653589793) 13>>> print(x) 14π 15>>> print(x-1) 162.141592653589793 17>>> 18>>> import math 19>>> x = Float(math.pi) 20>>> print(x) 21π 22>>> print(x-1) 232.141592653589793
ソースコードは以下です。
python
1class Float(float): 2 def __repr__(self): 3 if self == 2.718281828459045: return 'e' 4 elif self == 3.141592653589793: return 'π' 5 else: return super().__repr__() 6 7x = Float(2.718281828459045) 8print(x) 9print(x-1) 10x = Float(3.141592653589793) 11print(x) 12print(x-1) 13import math 14x = Float(math.pi) 15print(x) 16print(x-1)
投稿2021/12/08 15:31
編集2021/12/08 22:58総合スコア24670
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/12/08 16:05
2021/12/08 16:48
退会済みユーザー
2021/12/08 17:45
2021/12/09 03:29