可能很容易的bug,找不到它,是python的新手

时间:2015-01-21 04:45:12

标签: python

我制作了一个节目。我分配给自己的作业,没有做过很多蟒蛇,更多的是c ++有点家伙。我找不到错误,我只是得到了

syntax error: invalid syntax line 88 

该行是"print "Attenuation Constant = ", Ac"

z = input("The depth in meters = ")
S = input("salinity in p.s.u. = ")
T = input("temperature in C = ")
pH = input("pH = ")
f = input("frequency of the propagating wave = ")

#relaxation of Boric acid
c = 1,412 + (3.21*T) + (1.19*S) + (.0167*Z)
A_1 = (8.86/c)(10**(.78*pH - 5))
P_1 = 1
f_1 = 2.8*sqrt(S/35)*10**(4 - (1245/(T+273)))

#contribution of Magnesium sulphate
A_2 = 21.44(S/c)(1+0.25*T)
P_2 = (1 - 1.37 * 10**(-4)*z) + (6.2*10**(-9)*z**(2))
f_2 = (8.17 * 10**(8-1990/(T+273)))/(0.0018 (S-35)+1)

#contribution of the viscosity of pure water is
P_3 = 1 - (3.83 * 10^(-5) * z ) + (4.9 * 10^(-10) * z**(2))
if T <= 20:
    A_3 = 4.937 * 10**(-4) - 2.590 * 10**(-5) * T + 9.11 * 10**(-7) * T**(2) - 1.5 * 10**(-8) * T**(3)
else:
    A_3 = 3.964 * 10**(-4) - 1.146 * 10**(-5) * T + 1.45 * 10**(-7) * T**(2) - 6.5 * 10**(-10) * T**(3)

#all together now
Ac = A_1 * P_1 * ((f_1 * f**(2)) /(f_1**(2) + f**(2)) + A_2 * P_2 * ((f_2 * f**(2)) /(f_2**(2) + f**(2)) + A_3 * P_3 * f**(2)

print "Attenuation Constant = ", Ac

2 个答案:

答案 0 :(得分:4)

至少在给出的示例中,您在Ac = ...之前的行上遗漏了一些括号。有13个开放的parens和只有11个关闭的parens。

答案 1 :(得分:0)

有很多错误

  1. 您宣布z,并将其用作Z c = 1,412 +(3.21 * T)+(1.19 * S)+(。0167 * Z)

  2. 错误地使用/运算符 unsupported operand type(s) for /: 'float' and 'tuple'

  3. A_1 = (8.86/c)(10**(.78*pH - 5))
  4. can't multiply sequence by non-int of type 'float'位于第2行。您可以使用显式转换

  5. c的乘法创建元组,如(1, 432.8601)你真正想要的是什么?元组还是价值观?将元组与int相乘会产生错误。

  6. 请明确你想要什么,以便其他事情可以纠正。