在Python中分配变量收益率错误消息

时间:2017-01-02 03:00:32

标签: python

我试图在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)

2 个答案:

答案 0 :(得分:1)

括号在结尾处的表达式中不平衡。

答案 1 :(得分:0)

ivString,您正在尝试进行数学噱头而不将其转换为floatint。请更正并再次检查..您还有不平衡的括号。试试下面的代码:

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))