Ошибка TypeError: unsupported operand type(s) for /: 'tuple' and 'int'
Я в Python новичок, на курсе задали задачу написать программу для решения дискриминанта и выдает ошибку. Что не так?
a = 12
b = 7
c = 1
if a != 0:
disc = b**2 - 4 * a * c
if disc < 0:
print('корней нет')
elif disc == 0:
x = -b / (2 * a)
print ('двойной корень x =', x)
else:
print ('два корня')
x_1 = (-b + disc**0,5) / (2 * a)
x_2 = (-b - disc**0,5) / (2 * a)
print('x_1', x_1)
print('x_2', x_2)
else:
print('не квадратное')
print('конец')
два корня
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-22-6c46f0fc8169> in <module>()
11 else:
12 print ('два корня')
---> 13 x_1 = (-b + disc**0,5) / (2 * a)
14 x_2 = (-b - disc**0,5) / (2 * a)
15 print('x_1', x_1)
TypeError: unsupported operand type(s) for /: 'tuple' and 'int'
Ответы (1 шт):
Автор решения: nomnoms12
→ Ссылка
Дробная часть числа должна отделяться точкой:
x_1 = (-b + disc**0.5) / (2 * a)
# ^^^
Вы же отделяете её запятой. Поэтому Python воспринимает выражение как кортеж (tuple) из двух элементов:
x_1 = (-b + disc**0,5) # (-6, 5)
type(x_1) # <class 'tuple'>
x_1[0] # -6
x_1[1] # 5