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]
我正在编写一个代码,其中需要使用综合列表来计算 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]