Ctrl + D 不在 Vs 代码中引发 EOFError

Ctrl + D not raising EOFError in Vs Code

提问人:Big_Port 提问时间:7/15/2023 最后编辑:Big_Port 更新时间:7/18/2023 访问量:175

问:

每次在我的终端中,当我按 ctrl +D 时都会显示 ^d,但没有引发我需要的异常。相反,它只是不断要求更多的输入,并没有结束程序。 对此的任何修复

groceryList = {}
while True:
    try:
        item = input()
        if item not in groceryList:
            groceryList[item] = 1
        else:
            groceryList[item] = groceryList[item] + 1

    except EOFError:
        for key in groceryList:
            print(key)
            
        break
    except KeyError:
        pass  
python-3.x 字典 错误处理 终端

评论

0赞 chepner 7/15/2023
这是终端配置问题,而不是 Python 代码问题。 当从标准输入读取发出文件结束信号时,将引发。如果您的终端没有“关闭”标准输入以响应组合键,则不会发生这种情况。inputEOFError
0赞 Big_Port 7/15/2023
那么我如何配置我的终端以接受它
0赞 Giacomo Catenazzi 7/17/2023
@Big_Port:我们不知道什么是“我的终端”。所以没有人能回答,但这里可能跑题了(如何使用程序)。无论如何,在 Windows 中,许多程序(也是 Python)不使用 Control-D 作为文件结尾(并且可能无法模拟它,具体取决于操作系统)。(C++ 发明者建议在 Windows 上使用关键字“QUIT”,其余部分使用 Control-D)。(或者只使用空行作为“quit”

答:

0赞 Big_Port 7/18/2023 #1

找出答案,要在 Windows 中获取 eoferror,它是 CNTRL+Z 而不是 D

评论

0赞 Community 7/21/2023
您的答案可以通过其他支持信息进行改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。