Вот решение с помощью регулярных выражений. Не работает, если перед x коэффициент не в виде одного вещественного числа из цифр (запятой или точки для дробей). Наверняка можно выражение как-то упростить.
import re
equations = [
'56.6x**2 - 9,76543',
'566x^2 -2.0*x + 9,76543',
'33x - 9',
'7',
'66x^4',
'4.885x**2- 3*x',
'7x+x^2',
'2x**2-3,90.9x',
'55*x**2']
for eq in equations:
equation = eq.replace(' ', '')
result = re.match(r'(([1-9]+([,\.]\d+)?|0\.\d+)\*?)?x(\*\*|\^)2([\+-](\d+([,\.]\d+)?\*?)?x)?([\+-]\d+([,\.]\d+)?)?'
, equation)
if result and len(result.group(0)) == len(equation):
print('Это квадратное уравнение: ' + result.group(0))
else:
print('Это не квадратное уравнение!!! ' + eq)
Вывод:
Это квадратное уравнение: 56.6x**2-9,76543
Это квадратное уравнение: 566x^2-2.0*x+9,76543
Это не квадратное уравнение!!! 33x - 9
Это не квадратное уравнение!!! 7
Это не квадратное уравнение!!! 66x^4
Это квадратное уравнение: 4.885x**2-3*x
Это не квадратное уравнение!!! 7x+x^2
Это не квадратное уравнение!!! 2x**2-3,90.9x
Это квадратное уравнение: 55*x**2
(x**2 - x**2)уравнение квадратным? – jfs Mar 11 '17 at 13:10(e**(i*pi) + 1)*x**2? – jfs Mar 11 '17 at 13:49type(o) == str), в которой толькоxсчитается переменным? Знак^в Питоне означает XOR – jfs Mar 11 '17 at 13:58