SyntaxError:解析时意外的EOF

问题描述 投票:18回答:5

我在运行这部分代码时遇到错误。尝试了一些现有的解决方案,但都没有帮助

elec_and_weather = pd.read_csv(r'C:\HOUR.csv', parse_dates=True,index_col=0)
# Add historic DEMAND to each X vector
 for i in range(0,24):
    elec_and_weather[i] = np.zeros(len(elec_and_weather['DEMAND']))
    elec_and_weather[i][elec_and_weather.index.hour==i] = 1
# Set number of hours prediction is in advance
n_hours_advance = 24

# Set number of historic hours used
n_hours_window = 24

for k in range(n_hours_advance,n_hours_advance+n_hours_window):
    elec_and_weather['DEMAND_t-%i'% k] = np.zeros(len(elec_and_weather['DEMAND']))'

我总是得到这个错误

for i in range(0,24):
File "<ipython-input-29-db3022a769d1>", line 1
for i in range(0,24):
                     ^
SyntaxError: unexpected EOF while parsing

File "<ipython-input-25-df0a44131c36>", line 1
    for k in range(n_hours_advance,n_hours_advance+n_hours_window):
                                                                   ^
SyntaxError: unexpected EOF while parsing
python python-3.x python-3.6 eof lint
5个回答
22
投票

SyntaxError: unexpected EOF while parsing表示在完成所有代码块之前已到达源代码的结尾。代码块以for i in range(100):之类的语句开头,之后至少需要一行包含应该在其中的代码。

看起来你在ipython控制台中逐行执行你的程序。这适用于像a = 3这样的单个语句,但不适用于for循环等代码块。请参阅以下示例:

In [1]: for i in range(100):
  File "<ipython-input-1-ece1e5c2587f>", line 1
    for i in range(100):
                        ^
SyntaxError: unexpected EOF while parsing

要避免此错误,您必须将整个代码块作为单个输入输入:

In [2]: for i in range(5):
   ...:     print(i, end=', ')
0, 1, 2, 3, 4,

4
投票

我的语法错误半隐藏在f-string中

 print(f'num_flex_rows = {self.}\nFlex Rows = {flex_rows}\nMax elements = {max_elements}')

应该

 print(f'num_flex_rows = {self.num_rows}\nFlex Rows = {flex_rows}\nMax elements = {max_elements}')

它没有错误下的PyCharm拼写检查红线。

它确实给了我一个线索,但当我搜索这个错误消息时,它当然没有在上面的代码中找到错误。

如果我更仔细地查看错误消息,我会在错误中找到''。看到第1行是令人沮丧的,因此没有密切注意:-(寻找

自。)

一无所获。正在寻找

自。

实际上产生了一切: -

如果我可以帮助你避免甚至一分钟检查你的代码,那么任务就完成了:-)

C:\ Python \ Anaconda3 \ python.exe C:/Python/PycharmProjects/FlexForms/FlexForm.py文件“”,第1行(自我。)^ SyntaxError:解析时意外的EOF

进程以退出代码1结束


2
投票

这也可能意味着您缺少或括号过多。例如,这个太多了,会导致意外的EOF:

    print(9, not (a==7 and b==6)

1
投票

这是我的一个错误产生了这个例外:我有一个没有任何tryexcept块的finally块。这不起作用:

try:
    lets_do_something_beneficial()

要解决此问题,请添加exceptfinally块:

try:
    lets_do_something_beneficial()
finally:
    lets_go_to_sleep()

0
投票

初始for循环时有2个空格,需要为4或制表符。


0
投票

elec_and_weather['DEMAND_t-%i'% k] = np.zeros(len(elec_and_weather['DEMAND']))'

错误出现在您拥有(')符号的行的末尾;此错误始终表示您有语法错误。

© www.soinside.com 2019 - 2024. All rights reserved.