作者: 機械伯爵
日時: 2009/8/13(23:05)
 えっと、オリジナルには書いておいたんですけど……

「Python3.x系ではなく2.x系の人は、1/2を0.5にすればいいかと。」

 よって、2.xで試す時は、

sol = lambda a,b,c:[(-b+k*(b*b-4*a*c)**(0.5))/(2*a) for k in (1,-1)]
                                        ^^^

 にしてくださいね。

<理由>
 Python 2.x以前は int / int の答えはC言語のようにintになってしまうので、
1/2 => 1 になってしまいます。
 Python 3.x以降は int / int => floatなので、1/2 => 0.5となります。
 こうすれば、内包表記可能以降のverなら、十分に使える筈です。

 /機械伯爵/

※3.xでも0.5は使えるので、そーすればいいのですが、単位分数(分母が整数、
分子が1)を累乗してやると累乗根を扱えるとゆーことが書きたかったので……