저는 Sympy를 처음 사용하고 대수 표현을 계산하고 단순화하는 데 매우 유용하다는 것을 깨달았습니다.Sympy는 실수가있는 분수에 대해 0을 반환합니다.
그러나 실제 숫자의 분수를 쓸 때 0을 반환합니다 ('x'와 같은 기호의 분수에는 문제가 없습니다). 내가 도대체 뭘 잘못하고있는 겁니까?
from sympy import *
1./2
Out[2]: 0.5
1/2
Out[3]: 0
저는 Sympy를 처음 사용하고 대수 표현을 계산하고 단순화하는 데 매우 유용하다는 것을 깨달았습니다.Sympy는 실수가있는 분수에 대해 0을 반환합니다.
그러나 실제 숫자의 분수를 쓸 때 0을 반환합니다 ('x'와 같은 기호의 분수에는 문제가 없습니다). 내가 도대체 뭘 잘못하고있는 겁니까?
from sympy import *
1./2
Out[2]: 0.5
1/2
Out[3]: 0
왜냐하면 파이썬 (2.7)은 플로트를 반환하기 위해 분모 나 분자에 float가 필요하기 때문입니다. 어떤 부문 float를 반환 파이썬 3.x의에서
할 수 있습니다 또한 사용하여 파이썬 2.7에서 '수정'
from __future__ import division
사실 파이썬에서 정수 나누기 규칙을 따라 정수를 반환 부동 소수점 숫자가 아닙니다
1/2
은 SymPy를 전혀 사용하지 않습니다. 이것은 단지 Python에 의해 평가됩니다. http://docs.sympy.org/latest/tutorial/gotchas.html#two-final-notes-and을 읽어보십시오 (실제로는 whole SymPy tutorial을 통해 읽는 것이 좋습니다).
기본적으로 SymPy를 사용하는 경우 Rational(1, 2)
으로 얻을 수있는 유리한 숫자가 필요할 수 있습니다. 이것을 입력하는 쉬운 방법은 S(1)/2
입니다. S
함수는 1
을 SymPy의 Integer(1)
으로 변환합니다.이 값은로 나눌 때 Rational
이됩니다.
알아요. x - 1/2 + a = 0과 같은 방정식을 풀고 싶다면 문제가 발생했습니다. x = 1/2 대신에 x = -a가됩니다. – user3218615