SyntaxError:解析时意外的EOF

时间:2017-04-03 16:03:00

标签: python python-3.x python-3.6 eof lint

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

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

8 个答案:

答案 0 :(得分:19)

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,

答案 1 :(得分: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拼写检查红线。

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

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

  

自我。)

一无所获。正在搜索

  

几乎可以产生一切: - \

如果我可以帮助你避免一分钟 deskchecking 代码,那么完成任务: - )

  

C:\的Python \ Anaconda3 \ python.exe   C:/Python/PycharmProjects/FlexForms/FlexForm.py文件&#34;&#34;,   第1行       (个体)。             ^ SyntaxError:解析时意外的EOF

     

使用退出代码1完成处理

答案 2 :(得分:3)

这也仅表示您缺少或括号过多。例如,这太多了,将导致意外的EOF:

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

答案 3 :(得分:2)

在某些情况下,可能会导致此问题,如果它出现在代码中间,则将是“ IndentationError:预期缩进的块”或“ SyntaxError:无效的语法”,如果在最后一行,则可能是“ SyntaxError:解析时出现意外的EOF”:

缺少“ if”,“ while”和“ for”语句的正文->

root@nest:~/workplace# cat test.py
l = [1,2,3]
for i in l:
root@nest:~/workplace# python3 test.py
  File "test.py", line 3

               ^
SyntaxError: unexpected EOF while parsing

未封闭的括号(特别是在复杂的嵌套状态中)->

root@nest:~/workplace# cat test.py
l = [1,2,3]
print( l
root@nest:~/workplace# python3 test.py
  File "test.py", line 3

            ^
SyntaxError: unexpected EOF while parsing

答案 4 :(得分:1)

这是导致此异常的错误之一:我有一个try块,没有任何exceptfinally块。这将不起作用:

try:
    lets_do_something_beneficial()

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

try:
    lets_do_something_beneficial()
finally:
    lets_go_to_sleep()

答案 5 :(得分:1)

我在尝试 eval 空字符串时遇到此错误。 例如:

query = eval(req.body)

我改用 json.loads() 并且错误消失了。

答案 6 :(得分:0)

for循环的初始位置为2个空格,必须为4个或制表符。

答案 7 :(得分:0)

r$Reg_sum

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