2,4,2算出来小于0了,程序走了你的else,然后else这里又没有给x1,x2赋值,怎么返回?
def quadratic(a,b,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('The quadratic is :{0}x^2+{1}x+{2}=0'.format(a,b,c))
return x1,x2
else:
print 'There is no real root'
return None,None
x1,x2=quadratic(2,4,2)
#There is no real root
print x1,x2
#None None
x1,x2=quadratic(2,16,2)
#The quadratic is :2x^2+16x+2=0
print x1,x2
#-12.1270166538 -7.87298334621
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/09fa513d269759ee2b164638b8fb43166c22dffa?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追问计算完了应该是刚好等于0,应该执行if后的语句,但是即使走了else,那也应该返回“There is no real root”,怎么什么都不显示,Python中的return是怎么用的呢?求进一步指教,谢谢!
刚才用Python的IDLE试了一下,可以返回,但是为什么用在pycharm中不能实现呢?
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/d043ad4bd11373f04b6d416cae0f4bfbfaed04f6?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)