交作业 以及怎么当输入a,b,c不满足要求时,自动跳到重新输入
Topic source在你的函数里如果无实数根就抛出一个valueError异常
然后:
while True:
a = float(input ('请输入a的值:a='))
b = float(input ('请输入b的值:b='))
c = float(input ('请输入c的值:c='))
try:
quadratic(a,b,c)
except ValueError:
continue
else:
break
- 1
爱美食的Y先生
#定义一个函数quadratic(a,b,c),能接受3个参数,返回一元二次方程:
#ax2 + bx + c = 0的两个解。
#时间:2017年10月9日15:57:02
* coding: utf-8 *
import math def quadratic(a,b,c):
#检查参数类型 if not isinstance(a,(int , float)): raise TypeError('bad operand type') if not isinstance(b,(int , float)): raise TypeError('bad operand type') if not isinstance(c,(int , float)): raise TypeError('bad operand type') if (a == 0): print ('no answer')
#求解过程 delta = b*2-4a*c
#x1 = (-b + math.sqrt(delta))/(2*a)
#x2 = (-b - math.sqrt(delta))/(2a) if delta > 0: x1 = (-b + math.sqrt(delta))/(2a) x2 = (-b - math.sqrt(delta))/(2a) print('该方程有两个不等实根:x1 = %s ,x2 = %s' % (x1 ,x2)) elif delta == 0 : x1 = x2 = (-b + math.sqrt(delta))/(2a) print('该方程有两个相等实根:x1 = x2 = %s' % (x1)) else : print('该方程无实根,请重新输入a ,b ,c 的值。')
a = float(input ('请输入a的值:a=')) b = float(input ('请输入b的值:b=')) c = float(input ('请输入c的值:c='))
quadratic(a,b,c)
#输出结果为:
#C:\Users\loysaid_yan>"F:\Users\loysaid_yan\AppData\Local\Programs\python course\
#def function\yiyuanerci.py"
#请输入a的值:a=2
#请输入b的值:b=5
##请输入c的值:c=2
#该方程有两个不等实根:x1 = -0.5 ,x2 = -2.0
#C:\Users\loysaid_yan>
#C:\Users\loysaid_yan>"F:\Users\loysaid_yan\AppData\Local\Programs\python course\
#def function\yiyuanerci.py"
#请输入a的值:a=4
#请输入b的值:b=2
#请输入c的值:c=2
#该方程无实根,请重新输入a ,b ,c 的值。
#C:\Users\loysaid_yan>"F:\Users\loysaid_yan\AppData\Local\Programs\python course\
#def function\yiyuanerci.py"
#请输入a的值:a=2
#请输入b的值:b=4
#请输入c的值:c=2
#该方程有两个相等实根:x1 = x2 = -1.0
如何在最后一个else那里,当输入的a,b,c不符合要求时,直接再跳到请输入a的值那里去??求大神教我