開発環境
- OS X El Capitan - Apple (OS)
- Emacs (Text Editor)
- Python 3.5 (プログラミング言語)
Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の4章(SymPyで代数と式を計算する)、4.6(プログラミングチャレンジ)、問題4-1(因数ファインダ)を取り組んでみる。
問題4-1(因数ファインダ)
コード(Emacs)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sympy
def factors(expr):
return sympy.factor(expr)
if __name__ == '__main__':
while True:
expr = input('式を入力: ')
if expr == 'q':
break
try:
expr = sympy.sympify(expr)
except sympy.SympifyError as err:
print(err)
except Exception as err:
print(err)
else:
sympy.pprint(factors(expr))
入出力結果(Terminal, IPython)
$ ./sample1.py 式を入力: 10x Sympify of expression 'could not parse '10x'' failed, because of exception being raised: SyntaxError: invalid syntax (<string>, line 1) 式を入力: x**2 - y**2 (x - y)⋅(x + y) 式を入力: x**3 + 3 * (x**2) * y + 3 * x * (y**2) + y**3 3 (x + y) 式を入力: x**2 + x + 1 2 x + x + 1 式を入力: q $
0 コメント:
コメントを投稿