#13743: python 他最後面的else:說是無效的語法 新手求解大感謝


easteater (烤雞)


import sys
for input in sys.stdin:
a,b,c=input.split()
t=float(b)**2-4*float(a)*float(c)
if t<0:
print('No real root')
elif t==0:
print('The same roots x= %d'%(float(b)**2-4*float(a)*float(c))
else:
print('Two different roots x1=%d ,x2=%d'%((float(-b)+sqrt(float(b)**2-4*float(a)*float(c)))/(float(a)*2),(float(-b)-sqrt(float(b)**2-4*float(a)*float(c)))/(float(a)*2))

#13744: Re:python 他最後面的else:說是無效的語法 新手求解大感謝


anandrewboy70900 (ShowTsai)


有少括號




#13745: Re:python 他最後面的else:說是無效的語法 新手求解大感謝


asnewchien@gmail.com (david)


有少括號





寫成這樣很難除錯吧。

#13746: Re:python 他最後面的else:說是無效的語法 新手求解大感謝


easteater (烤雞)


有少括號





寫成這樣很難除錯吧。

找到了,問題已解決,感謝


#13789: Re:python 他最後面的else:說是無效的語法 新手求解大感謝


andy0000011@yahoo.com.tw (andy0000011)


import sys
for input in sys.stdin:
a,b,c=input.split()
t=float(b)**2-4*float(a)*float(c)
if t<0:
print('No real root')
elif t==0:
print('The same roots x= %d'%(float(b)**2-4*float(a)*float(c))
else:
print('Two different roots x1=%d ,x2=%d'%((float(-b)+sqrt(float(b)**2-4*float(a)*float(c)))/(float(a)*2),(float(-b)-sqrt(float(b)**2-4*float(a)*float(c)))/(float(a)*2))


給你2個建議

第一個是你可以把第三行寫成

a, b, c = list(map(float, input().Split()))

這樣就可以一次把型態轉float

不用每次要用都要轉一次

第二個建議是

你後面在求X的時候

可以把中間換成t

你前面的已經算好t了

就不用讓他再算一次