2018年12月5日水曜日

開発環境

Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の4章(SymPyで代数と式を計算する)、4.6(プログラミングチャレンジ)、問題4-1(因数ファインダ)を取り組んでみる。

コード(Emacs)

Python 3

#!/usr/bin/env python3
import sympy

print('1.')

while True:
    eq = input('式を入力: ')
    if eq == 'q':
        break
    try:
        eq = sympy.sympify(eq)
        sympy.pprint(eq.factor())
        print()
    except sympy.SympifyError as err:
        print(err)
    except Exception as err:
        print(err)

入出力結果(Terminal, cmd(コマンドプロンプト), Jupyter(IPython))

$ ./sample1.py
1.
式を入力: x ** 2 + 2 * x + 1
       2
(x + 1) 

式を入力: x ** 2 + 3 * x + 1
 2          
x  + 3⋅x + 1

式を入力: x ** 2 + 5 * x + 6
(x + 2)⋅(x + 3)

式を入力: x ** 2 - 5 * x + 6
(x - 3)⋅(x - 2)

式を入力: 10
10

式を入力: x
x

式を入力: 2x
Sympify of expression 'could not parse '2x'' failed, because of exception being raised:
SyntaxError: invalid syntax (<string>, line 1)
式を入力: q
$

0 コメント:

コメントを投稿