yol*_*o69 3 python string python-2.7
我只是在尝试并享受 Python 2.7 的乐趣,我正在尝试编写一个二次方程求解器。当被数为正时,我让它工作,但当它为负时,我收到错误。即使在这个 if else 语句之后。它也不适用于大数字。谢谢您的帮助。
import math
a = raw_input("a = ")
b = raw_input("b = ")
c = raw_input("c = ")
float(a)
float(b)
float(c)
radicand = ((b**2)-4*a*c)
if radicand >= 0:
print(((0-b) + math.sqrt((b**2)-4*a*c))/(2*a))
print(((0-b) - math.sqrt((b**2)-4*a*c))/(2*a))
else:
print "Imaginary Radical"
Run Code Online (Sandbox Code Playgroud)
当我用根替换 (b**2)-4*a*c 时,我收到无效语法错误,并且打印以红色突出显示。错误消息显示 TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
再次感谢您提供的任何见解...
你应该更换:
float(a)
Run Code Online (Sandbox Code Playgroud)
和:
a = float(a)
Run Code Online (Sandbox Code Playgroud)
对于其他变量也是如此。
该语句float(a)实际上并没有变成a a,float它只是将其转换,如以下记录所示:
>>> a = raw_input("a? ")
a? 4.5
>>> type(a)
<type 'str'>
>>> float(a)
4.5
>>> type(a)
<type 'str'>
>>> a = float(a)
>>> type(a)
<type 'float'>
Run Code Online (Sandbox Code Playgroud)
您可以看到执行后 的类型仍然a是立即的,但是当您执行这些赋值时,类型变为。 strfloat(a)a = float(a)float
| 归档时间: |
|
| 查看次数: |
33194 次 |
| 最近记录: |