Discuss / Python / 交作业 以及怎么当输入a,b,c不满足要求时,自动跳到重新输入

交作业 以及怎么当输入a,b,c不满足要求时,自动跳到重新输入

Topic source

#定义一个函数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 的值。')

  # return x1 ,x2

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的值那里去??求大神教我

在你的函数里如果无实数根就抛出一个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

Reply