Я пытаюсь решить простую задачу алгебры, решения могут быть реальными и сложными.
Я ищу там только положительные и реальные решения, в этом случае я написал следующий пример:
В основном я пытался спросить python для каждого члена в списке ответов, что "type (ans) является float, а после спрашивает, положительный ли он".
res = sp.solve(self.dflux * (self.u - u_0) - (self.flux - flux_0), self.u)
for it in res:
print(it)
if(type(it) is float):
print('here')
print(type(res),res)
например, в следующем случае
<class 'list'> [-0.707106781186548, 0.0, 0.707106781186548]
Я вообще не вижу "здесь".
то же самое происходит для следующего случая
<class 'list'> [0.0, 0.793216505472184, -0.398143686499772 - 0.949955974569196*I, -0.398143686499772 + 0.949955974569196*I, 0.603391747263908 - 2.16302515309992*I, 0.603391747263908 + 2.16302515309992*I]
Я ожидал увидеть здесь 3 раза для первого примера и два раза для второго, но ничего.
Новая часть:
Я немного изменил скрипт для следующей версии:
for it in res:
print(it)
print(isinstance(it,float),type(it))
if(isinstance(it,float) == True):
print('here')
Вывод, который я вижу для первого случая, следующий:
-0.707106781186548
False <class 'sympy.core.numbers.Float'>
0.0
False <class 'sympy.core.numbers.Float'>
0.707106781186548
False <class 'sympy.core.numbers.Float'>
<class 'list'> [-0.707106781186548, 0.0, 0.707106781186548]
Действительно странное для меня такое поведение. В одной руке питон говорит, что это не поплавок, но в другой он говорит, что это ...