While循环无法终止及排除-1的平均值计算方法求助
问题修复与完整实现
你的代码存在几个关键问题导致循环无法停止,同时缺少计算平均值的必要逻辑,下面一步步解决:
代码中的核心问题
- Python的
while语句末尾必须添加冒号:,否则会触发语法错误。 - 你将输入内容转成了字符串
str(),但循环条件是和整数-1做比较,类型不匹配的情况下永远不会满足退出条件;而且输入的值没有赋值给变量n,循环条件里的n从未更新,自然无法终止循环。
完整实现代码
total = 0 count = 0 n = 0 # 初始化循环控制变量 while n != -1: try: n = int(input("enter your number:")) if n != -1: total += n count += 1 except ValueError: print("请输入有效的整数") if count > 0: average = total / count print(f"平均值为: {average}") else: print("没有输入有效数字")
代码说明
- 初始化
total(存储输入数字的总和)和count(统计有效数字的个数)为0,这两个变量是计算平均值的基础。 - 每次循环中先获取用户输入并转为整数,再更新循环控制变量
n。 - 只有当输入的数字不是
-1时,才将其加入总和并增加计数。 - 用
try-except捕获用户输入非整数的情况,避免程序直接崩溃。 - 循环结束后,判断是否有有效输入:如果有则计算并打印平均值;如果用户直接输入
-1,则提示没有有效数字。
内容的提问来源于stack exchange,提问作者Valkz
相关产品推荐
相关产品推荐

