提问人:Akash Joshi 提问时间:4/4/2017 最后编辑:Karl KnechtelAkash Joshi 更新时间:1/27/2023 访问量:965138
为什么 IPython REPL 在我输入代码时告诉我“SyntaxError:解析时出现意外的 EOF”?
Why does the IPython REPL tell me "SyntaxError: unexpected EOF while parsing" as I input the code?
问:
我在运行这部分代码时遇到错误。我尝试了一些现有的解决方案,但没有一个有帮助。
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
IDLE 或命令行 REPL 中的相关问题:为什么当我只按 Enter 键时 input() 给出 SyntaxError?
答:
这意味着在所有代码块完成之前,源代码的末尾已经到达。代码块以 like 语句开头,之后至少需要一行包含应包含的代码。SyntaxError: unexpected EOF while parsing
for i in range(100):
您似乎在 ipython 控制台中逐行执行程序。这适用于单个语句,如 for 循环,但不适用于代码块,如 for。请参阅以下示例:a = 3
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,
评论
IndentationError: expected an indented block
我的语法错误半隐藏在 f 字符串中
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
评论
这是我产生此异常的错误之一:我有一个没有任何或块的块。这是行不通的:try
except
finally
try:
lets_do_something_beneficial()
要解决此问题,请添加一个 or 块:except
finally
try:
lets_do_something_beneficial()
finally:
lets_go_to_sleep()
elec_and_weather['DEMAND_t-%i'% k] = np.zeros(len(elec_and_weather['DEMAND']))'
错误出现在带有 (') 符号的行尾;此错误始终意味着您有语法错误。
这也可能意味着您缺少或有太多括号。例如,这有太多,并且会导致意外:EOF
print(9, not (a==7 and b==6)
在某些情况下可能会导致此问题,如果它占据代码中间,它将是“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
我在尝试使用空字符串时遇到了此错误。
例如:eval
query = eval(req.body)
我改用了,错误消失了。json.loads()
有时是由于忘记在 try/except 语句上添加 Except 而造成的。
评论
我在下面遇到了同样的错误:
SyntaxError:解析时出现意外的 EOF
当我忘记了尾随括号时,如下所示:
print("Hello"
↑
Here
或者,当我忘记放到类或函数时,如下所示:pass
class Person:
# pass
def test():
# pass
评论