如何在用户输入为空时退出循环并计算已输入数字的平均值
报错原因
你代码的核心问题是直接对输入结果执行int转换:input()返回的是字符串类型,当用户输入为空时,空字符串无法被解析为整数,int()方法会直接抛出ValueError,程序根本不会执行到你后续判断输入是否为空的逻辑。
你之前尝试的几种判断失效的原因:
if number == '':此时number已经被转为整数类型,不可能和空字符串相等,判断永远不生效if number == int(""):int("")本身就是非法操作,执行时会直接抛出错误if len(number) == 0:整数类型没有长度属性,执行会直接报错
修复方案
调整执行顺序:先拿到原始输入字符串,先判断是否为空,确认不为空后再转成整数,同时新增计数变量统计有效输入的数字个数,用于计算平均值。
完整可运行代码:
total = 0 count = 0 while True: # 先获取原始输入字符串 input_content = input('Please enter the number: ') # 输入为空直接终止循环 if input_content == '': break # 处理非数字输入的异常情况 try: num = int(input_content) except ValueError: print("请输入合法的数字") continue total += num count += 1 # 避免无有效输入时除以0报错 if count > 0: average = total / count print(f"平均值为:{average}") else: print("未输入任何有效数字")
内容的提问来源于stack exchange,提问作者Renaissance Man
相关产品推荐
相关产品推荐

