如何让代码持续运行并循环获取用户输入?遇EOFError问题
解决持续输入时的EOFError问题
当用while True循环持续获取用户输入时,若输入流终止(比如终端按下Ctrl+D,或从文件读取完所有内容),input()函数会抛出EOFError,导致程序直接崩溃。要实现持续输入且优雅处理结束信号,可通过异常捕获来解决。
修改后的代码如下:
while True: try: i = input() b = int(i, 2) print(b) except EOFError: # 输入流结束,退出循环 break except ValueError: # 处理非二进制输入的错误情况 print("请输入有效的二进制字符串")
说明
- 核心逻辑放在
try块中,捕获EOFError时执行break,正常退出循环 - 额外捕获
ValueError,避免用户输入非二进制字符(如字母、非0/1数字)导致程序崩溃,同时给出提示
内容的提问来源于stack exchange,提问作者Firas Bayazed
相关产品推荐
相关产品推荐

