【发布时间】:2021-07-30 10:25:57
【问题描述】:
此步骤方法出现EOF错误,删除try块时出现val = input().split(' ')值错误
from collections import deque
n = int(input())
d = deque()
for _ in range(n):
try:
method, val = input().split(' ')
if method == 'append':
d.append(val)
if method == 'appendleft':
d.appendleft(val)
except ValueError:
a = input()
if str(a) == 'pop':
d.pop()
else:
d.popleft()
print(d)
给定的输入是:
6
append 1
append 2
append 3
appendleft 4
pop
popleft
【问题讨论】:
-
请edit您的帖子正确缩进代码,这里尝试/除了不匹配
-
在我提出这个问题时发生了缩进
-
是的,但现在你可以修复它,edit 并修复它
-
我测试了代码,但得到的不是
EOFError,而是ValueError: too many values to unpack (expected 2)。但是我看到了不同的问题-当您运行input().split(' ')时,它首先读取行,然后将其拆分-如果出现错误,则运行a = input(),它将读取下一行,而不是给出错误的行-所以你跳过一些线。你应该只运行一次input- 在try之前 - 然后在try和except中使用相同的文本。或者您应该将其拆分并分配给一个变量 - 即。 args - 并检查len(arg) > 1 -
您应该阅读行并分配给单个变量,然后将其拆分为
try/except
标签: python if-statement collections valueerror deque