我试图在Python中编写运动学代码。在这里,如果时间输入是一个数字,则将其放入等式中。如果输入不是数字,则传递给第二组方程。但是,当我尝试运行代码时,我收到如下语法错误:
File "kc.py", line 24
t2 = (-iv - ((iv**2 - 4 * ac * ip)**.5)/ (2 * ac)
^
导致此错误的原因是什么?
ip = raw_input("Enter Initial Position: ")
iv = raw_input("Enter Initial Velocity: ")
ac = raw_input("Enter Acceleration: ")
t = raw_input("Enter Time: ")
ip1 = float(ip)
iv1 = float(iv)
ac1 = float(ac)
if t.isdigit():
t1 = float(t)
x = ip1 + iv1 * t1 + .5 * ac1 * t1 * t1
else:
t1 = (-iv + ((iv**2 - 4 * ac * ip)**.5)/ (2 * ac)
t2 = (-iv - ((iv**2 - 4 * ac * ip)**.5)/ (2 * ac)
答案 0 :(得分:1)
括号在结尾处的表达式中不平衡。
答案 1 :(得分:0)
iv
是String
,您正在尝试进行数学噱头而不将其转换为float
或int
。请更正并再次检查..您还有不平衡的括号。试试下面的代码:
ip = raw_input("Enter Initial Position: ")
iv = raw_input("Enter Initial Velocity: ")
ac = raw_input("Enter Acceleration: ")
t = raw_input("Enter Time: ")
ip1 = float(ip)
iv1 = float(iv)
ac1 = float(ac)
if t.isdigit():
t1 = float(t)
x = ip1 + iv1 * t1 + .5 * ac1 * t1 * t1
else:
t1 = (-iv1 + ((iv1**2 - 4 * ac1 * ip1)**.5)/ (2 * ac1))
t2 = (-iv1 - ((iv1**2 - 4 * ac1 * ip1)**.5)/ (2 * ac1))