2016年8月20日土曜日

開発環境

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 コメント:

コメントを投稿