Код запускается через раз.

Naive014

Новичок
Пользователь
Окт 10, 2022
18
0
1
Написал код, вроде все правильно, но запускается стабильно через раз.
Вот код:
Python:
print('выберите вид уравнения:', '1. ax + c = 0', '2. ax + bx = 0', '3. ax + bx + c = 0', '4. ax = 0:', sep="\n")        
equ = float(input())     
if equ == 1:
    print('Вы выбрали уравнение "ax + c = 0". Теперь выберите коэффициенты.')
    a = float(input('Коэффициент a:'))
    c = float(input('Коэффициент c:'))
    if c < 0:
        print('Ваше уравнение имеет 1 решение:', -c,'/',a)
    elif c < 0 and a < 0:
        k = c ** 0.5
        print (f'Ваше уравнение имеет 2 решения: x1 = {-k}/{c} x2 = {k}/{c}')
elif equ == 2:
    print('Вы выбрали уравнение "ax + bx = 0". Теперь выберите коэффициенты.')
    a = float(input('Коэффициент a:'))
    b = float(input('Коэффициент b:'))
    if b > 0:
        print(f'Ваше уравнение имеет 2 решения: x1 = 0 x2 = {-b}/{a}')
    else:
        print(f'Ваше уравнение имеет 2 решения: x1 = 0 x2 = {b}/{a}')
elif equ == 3:
    print('Вы выбрали уравнение "ax + bx + c = 0". Теперь выберите коэффициенты.')
    a = float(input('Коэффициент a:'))
    b = float(input('Коэффициент b:'))
    c = float(input('Коэффициент c:'))
    D = b ** 2 - 4 * a * c
    if D > 0:
        x1 = (-b - (D ** (0.5))) / 2 * a
        x2 = (-b + (D ** (0.5))) / 2 * a
        print(f'Ваше уравнение имеет 2 решения: x1:{x1}, x2:{x2}')
    elif D == 0:
        x = -b / (2 * a)
        print(f'Ваше уравнение имеет 1 решениe: x:{x}')
    else:
        print('Ваше уравнение не имеет решений')
elif equ == 4:
    print('Ваше уравнение имеет 1 решение: x = 0')

Ошибка выглядит так:
Traceback (most recent call last):
File "c:\Users\Acer\Desktop\task\Solving _quadratic_equations.py", line 3, in <module>
equ = float(input())
^^^^^^^^^^^^^^
ValueError: could not convert string to float:
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
написано же - ValueError: could not convert string to float:
 
  • Мне нравится
Реакции: Naive014

robisho

Активный пользователь
Пользователь
Окт 19, 2020
151
26
28
зачем вам в строке equ = float(input()) тип float? замените на int, все должно заработать. или проверяйте equ == '1', тогда вообще преобразовывать input не нужно, будет equ = input().
 

Форум IT Специалистов