Python 我在for循环中遇到语法错误

Python 我在for循环中遇到语法错误,python,for-loop,syntax-error,Python,For Loop,Syntax Error,所以首先,在我的研究中,我发现它听起来就像我遇到的问题,所以我尝试了答案中建议的方法。我尝试使用k-最近邻算法,代码如下: train_data_copy['distance_to_new'] = numpy.sqrt( 0 for k in predictors: +(new_example[k]-train_data_copy[k])**2 其中预测器是我的数据集中的一个变量数组 这是我更改间距后的最后两行: for k in predictors:

所以首先,在我的研究中,我发现它听起来就像我遇到的问题,所以我尝试了答案中建议的方法。我尝试使用k-最近邻算法,代码如下:

train_data_copy['distance_to_new'] = numpy.sqrt(
    0
    for k in predictors:
        +(new_example[k]-train_data_copy[k])**2
其中预测器是我的数据集中的一个变量数组

这是我更改间距后的最后两行:

for k in predictors:
   +(new_example[k]-train_data_copy[k])**2
我也试过:

for k in predictors[]:
   +(new_example[k]-train_data_copy[k])**2
错误消息是:

File "<ipython-input-27-a08c65d44488>", line 7
for k in predictors:
                  ^
SyntaxError: invalid syntax
文件“”,第7行
对于k in预测值:
^
SyntaxError:无效语法
请帮忙。我必须很快完成这个项目

编辑:我已经计算了平均数。我试图计算出每个特定变量离平均值的距离,这样我就能计算出一个特定数据点离总体平均值有多远


编辑2:我通过手动写出所有变量,自己解决了这个问题。我只是希望有一种更快的方法来实现它。

Python将语句(指令)与表达式(计算为值的东西)区分开来。您不能在表达式上下文中使用
for
语句(如sqrt函数的参数),因为它不会计算任何值,甚至不会计算为
None
。这就是语法错误的原因

你还没有平衡你的括号


您的代码甚至不清楚您打算做什么。也许你想用理解来代替?

你不能在函数调用中使用块。改用a

事实证明,这基本上是正确的

train_data_copy['distance_to_new'] = [(new_example[k] - train_data_copy[k]) for k in predictors]
因为
**2
numpy.sqrt()
中和。但是,您在第一个代码片段中的代码表明,您希望首先对所有数字求和。您可以使用
sum
函数执行此操作

train_data_copy['distance_to_new'] = sum((new_example[k]-train_data_copy[k])**2 for k in predictors)

为了澄清为什么我将它命名为我所做的,我尝试了许多不同的描述性标题,但网站一直拒绝它们。我知道Python被称为“可执行伪代码”,但Python不能像人类一样读取字里行间的内容。它是一种精确的技术语言,具有精确的含义,并且必须正确地构造才能执行。这里的代码显示了对基础知识的理解不足。我可以建议你从一本初级课本开始,而不是期待我们为你写一本吗?也许是Python的字节?我在代码后面平衡了括号。我只是懒得复制粘贴那行。
train_data_copy['distance_to_new'] = sum((new_example[k]-train_data_copy[k])**2 for k in predictors)