python квадратное уравнение  
Автор Сообщение

-1
Сообщение python квадратное уравнение

print('''
Программа решает квадратные уравнения вида
a*x^2 + b*x + c = 0
при введеных пользователем аргументов a, b и c.
''')

import math

#Discriminant - вычисление дискриминанта
def Discriminant(a, b, c):
return b**2 - 4*a*c

#ВВод данных
a = int(input('Введите a: '))
b = int(input('Введите b: '))
c = int(input('Введите c: '))
print('%s*x^2 + %s*x + %s = 0' % (a, b, c))

D = Discriminant(a, b, c)
print('D =', D)

if D < 0:
print('Действительных корней не существует.')
elif D == 0:
print('X =', (-b/(2*a)))
elif D > 0:
print ('X1 =', (-b + math.sqrt(D))/(2*a))
print ('X2 =', (-b - math.sqrt(D))/(2*a))

print('Конец.')

Нужно дописать программу для решения кв. уравнения. Мне нужно чтобы программа проверяла введеные данные на ошибки, допустим если ввести в константу a = любой символ, он выдавал что то типо:"Неверные данные, введите целое число"

Знаю что схлопотаю кучу минусов.

Эксперты хелп.



03 окт 2014, 21:01
Профиль

0
Сообщение python квадратное уравнение

Для начала, a - это переменная, а не константа.

Если нужно чтобы бесконечно спрашивал ввести целое число(как вариант, хотя это не самый лучший вариант):

a = input('Введите а - ')

while not a.isdigit():

         print('Неверные данные, введите целое число!')

         a = input('Введите а - ')

a = int(a)

Или так:

a = input('Введите а - ')
b = input('Введите b - ')
c = input('Введите c - ')
while not str(a).isdigit() or not str(b).isdigit() or not str(c).isdigit():
     if str(a).isdigit():
          a = int(a)
     else:
          print('====================================\r\nНеверные данные, введите целое число!')
          a = input('Введите а - ')
     if str(b).isdigit():
          b = int(b)
     else:
          print('====================================\r\nНеверные данные, введите целое число!')
          b = input('Введите b - ')
     if str(c).isdigit():
          c = int(c)
     else:
          print('====================================\r\nНеверные данные, введите целое число!')
          c = input('Введите c - ')

P.S. минус за константу. Хорошо бы сделать это через do-while, но не знаю как он выглядит в питоне и поэтому не пользуюсь им.



03 окт 2014, 21:37
Профиль Skype

1
Сообщение python квадратное уравнение

 

Код:

while TRUE:

 try:

  a = int(input('Введите a: '))
  b = int(input('Введите b: '))
  c = int(input('Введите c: '))

 break
 except ValueError as verr:
  print("You shall not pass")

 PS Как же сложно без табуляции



03 окт 2014, 22:18
Профиль

0
Сообщение python квадратное уравнение

Как вариант:

 

def ValidatedInput(s):

try:

s = int(s)

except ValueError:

print '"%s" is not a valid value.' % s
exit()

 

a = ValidatedInput(raw_input('Enter a: '))

b = ValidatedInput(raw_input('Enter b: '))

c = ValidatedInput(raw_input('Enter c: '))



03 окт 2014, 22:39
Профиль

0
Сообщение python квадратное уравнение

Спасибо пацантрэ, выручили.



04 окт 2014, 05:45
Профиль
Начать новую тему Ответить на тему


Перейти:  

На сайте использованы материалы, принадлежащие Blizzard Entertainment. Копирование материалов возможно только c разрешения портала. В противном случае это будет называться уже другим словом.
Рейтинг@Mail.ru