```import math

a = 3.0
b = -2.0
c = -3.0
det = b * b - 4.0 * a * c
if det < 0:
num_roots = 0
r1 = (-b + math.sqrt(det)) / (2.0 * a)
if det == 0:
num_roots = 1
else:
num_roots = 2
r2 = (-b - math.sqrt(det)) / (2.0 * a)
print '%d roots' % num_roots
if num_roots == 1:
print 'Root: %.2f' % r1
elif num_roots == 2:
print "Root 1: %.2f - Root 2: %.2f\n" % (r1, r2)
```

```import math

det = b * b - 4.0 * a * c
if det < 0:
return []
r1 = (-b + math.sqrt(det)) / (2.0 * a)
if det == 0:
return [r1]
else:
r2 = (-b - math.sqrt(det)) / (2.0 * a)
return [r1, r2]

a = 3.0
b = -2.0
c = -3.0

print '%d roots' % len(res)
for r in res:
print 'Root: %.2f' % r
```

```import math

det = b * b - 4.0 * a * c
if det < 0:
return []
r1 = (-b + math.sqrt(det)) / (2.0 * a)
if det == 0:
return [r1]
else:
r2 = (-b - math.sqrt(det)) / (2.0 * a)
return [r1, r2]

def run(a, b, c):
print '%d roots' % len(res)
for r in res:
print 'Root: %.2f' % r

run(1.0, -2.0, -3.0)
run(-1.0, -1.0, -1.0)
run(2.0, 2.0, 0.5)

```

Equation definition from a file:

```import math

det = b * b - 4.0 * a * c
if det < 0:
return []
r1 = (-b + math.sqrt(det)) / (2.0 * a)
if det == 0:
return [r1]
else:
r2 = (-b - math.sqrt(det)) / (2.0 * a)
return [r1, r2]

def run(a, b, c):
print '%d roots' % len(res)
for r in res:
print 'Root: %.2f' % r

with open('test1.txt', 'r') as f:
words = text.split()
numbers = list()
for word in words:
numbers.append(float(word))
if len(numbers) != 3:
print >> sys.stderr, 'Could not parse'
else:
run(numbers[0], numbers[1], numbers[2])

```

Several quadratic equations from a file:

```import math
import sys

det = b * b - 4.0 * a * c
if det < 0:
return []
r1 = (-b + math.sqrt(det)) / (2.0 * a)
if det == 0:
return [r1]
else:
r2 = (-b - math.sqrt(det)) / (2.0 * a)
return [r1, r2]

max_root = -1
max_a = -1
max_b = -1
max_c = -1
with open('test.txt', 'r') as f:
for line in f:
words = line.split()
numbers = list()
for word in words:
numbers.append(float(word))
if len(numbers) != 3:
print >> sys.stderr, 'Could not parse'
else: