Python 中的列表理解错误

List Comprehension error in Python

我正在编写一个代码,其中需要使用综合列表来计算 y 轴值,使用 x 轴值的输入。我有两个问题。首先,我需要弄清楚如何使用输入列表 xx 中的值:

 print("How many x-axis values do you have?")
 xv = input("-->")
 print("What are your x-axis values? Put in each value and press enter.")
 xx = []
 while len(xx) < int(xv):
  item = float(input("-->"))
  xx.append(item)

并在列表推导中使用这些值:

y = [(a(x**2))+ bx + c) for x in xx]

当我运行这个时,它说:类型错误:'str'对象不可调用

我的第二个问题是 a、b 和 c 也被输入,我也需要能够将它们放在那里,但不知道如何。

如有任何帮助或建议,我们将不胜感激。

print("How many x-axis values do you have?")
xv = input("-->")
print("What are your x-axis values? Put in each value and press enter.")
xx = []
while len(xx) < int(xv):
    item = float(input("-->"))
    xx.append(item)
a=float(input("a?:"))
b=float(input("b?:"))
c=float(input("c?:"))
y = [(a*(x**2)+ b*x + c) for x in xx]

像这样?

Python 不像你我那样理解数学语法。您需要明确指定您执行的所有数学运算。

a(x**2)

并不意味着 "a times (x to the power of 2)",而是“以 'x to the power of 2' 作为参数调用方法 'a'”。你想这样做:

a * x**2

请注意,指数运算符优先于乘法,因此不需要括号。

同样不能写成'bx',需要写成b * x。

'a'似乎也是一个字符串,所以在数学表达式中使用它之前,您需要将其转换为 int 或 float。

print("How many x-axis values do you have?")
xv = input("-->")
print("What are your x-axis values? Put in each value and press enter.")
xx = []
while len(xx) < int(xv):
 item = float(input("-->"))
 xx.append(item)
a, b, c = map(float, (a, b, c))
y = [(a * x**2 + b * x + c) for x in xx]

正如 Joshua 所指出的那样,您的问题的第二部分需要 a*x**2 + b*x + c 我不确定您在问什么,但我认为您想要的是:

    a,b,c = eval(input("Please input a,b and c separated by a comma: "))                  
y = [(a(x**2)+ bx + c) for x in xx]

var a是字符串类型;你不能像这样复用"a(x**2)",它是python中的一个调用函数; 更改为:

y = [(a*(x**2)+ b*x + c) for x in xx]