Python基本方程式错误

时间:2016-02-20 17:00:11

标签: python

运行此代码时,它会给我这个错误:

  

x = p((1/2) - (2 / q))TypeError:'int'对象不可调用

p = 0
q = 0

while (p==0):
    p = int(input("Enter an integer for p: "))
while (q==0):
    q = int(input("Enter an integer for q: "))
x = p((1/2) - (2/q))   
print(x)

2 个答案:

答案 0 :(得分:2)

您没有使用乘法运算符*

x = p * ((1/2) - (2/q))

------^ here

在数学方程中,乘法运算符经常被省略。例如。 a(b-2)表示" a 数量b-2)。

但是在编程中,必须明确包含乘法运算符。例如。 a*(b-2)

在Python(和大多数其他语言)中,当一个标记后跟开/关括号时,它意味着正在调用一个函数。这就是您收到'int' object is not callable错误的原因;因为pint,看起来你正试图调用

您的翻译中还有另一个问题来自"等式"到Python。在Python 2中,使用整数除法(当两个操作数都是整数时)。这意味着这个词:

x = p * ((1/2) - (2/q))
         ^^^^^

将等于零。

在Python 3中,情况并非如此。除法(使用单个/)始终是浮点数。

由于可能不需要,您应该执行以下操作之一:

  • 将其中一个字词转换为float,例如float(1)/2
  • from __future__ import division启用Python 3行为
  • 只需将该字词替换为0.5
  • 即可

答案 1 :(得分:1)

因为你试图做这样的事情:

myApp.filter('newlines', function () {
  return function(text) {
    return text.replace(/(&#13;)?&#10;/g, '<br/>');
  }
});

但是p是可变的。