Python代码输出正常但触发EOFError异常该如何解决
异常产生原因
你的代码中while i < 3的循环逻辑会执行2次循环体,每次循环需要读取3行输入,总计需要6行输入内容。而你提供的测试输入只有3行,第一次循环读完所有输入输出VIP后,进入第二次循环尝试读取新的输入时,输入流已经到末尾,没有更多内容可以读取,因此触发EOFError: EOF when reading a line异常。
解决方案
根据实际业务需求可选择以下两种修复方案:
- 方案1:仅处理单次3行输入
如果逻辑只需要读取3行输入生成一次缩写,直接移除循环即可,修复后代码如下:
def main(): inputString = input() inputStringTwo = input() inputStringThree = input() outputString=inputString[0] + inputStringTwo[0] + inputStringThree[0] print(outputString) main()
- 方案2:处理多组输入直到输入结束
如果需要支持处理多组3行输入,直到没有更多输入为止,添加异常捕获逻辑即可,修复后代码如下:
def main(): while True: try: inputString = input() inputStringTwo = input() inputStringThree = input() outputString=inputString[0] + inputStringTwo[0] + inputStringThree[0] print(outputString) except EOFError: break main()
内容的提问来源于stack exchange,提问作者Hari nadh babu
相关产品推荐
相关产品推荐

