You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从同一输入行获取数量可变的用户输入?附求和求平均示例

如何处理单行可变数量的用户输入并计算总和与平均值?

嘿,这个需求在日常编程里真的挺常见的!我以Python为例给你详细讲讲实现思路——毕竟Python处理这种场景简直是手到擒来~

核心思路拆解

  1. 读取整行输入:用input()函数获取用户输入的整行内容,不管用户输入多少个数值,只要用空格分隔就行。
  2. 分割输入内容:用字符串的split()方法把整行内容按空格分割成单个的字符串元素,哪怕用户输入多个连续空格也能自动处理。
  3. 转换为数值类型:把分割后的字符串列表转换成整数(或浮点数)列表,这样才能进行数学计算。
  4. 计算总和与平均值:用内置函数sum()求总和,再用总和除以列表长度得到平均值,同时要处理空输入和无效输入的异常情况。

完整代码示例(带鲁棒性处理)

# 获取用户单行输入,提示用户输入格式
input_content = input("请输入多个成绩(用空格分隔,支持整数或小数):")

# 将输入内容按空格分割成字符串列表
input_str_list = input_content.split()

# 处理空输入的情况
if not input_str_list:
    print("⚠️ 没有输入任何成绩,请重新输入!")
    exit()

# 尝试将字符串转换为浮点数(兼容整数和小数)
try:
    scores = [float(num_str) for num_str in input_str_list]
except ValueError:
    print("⚠️ 输入包含非数字内容,请确保所有输入都是有效的数值!")
    exit()

# 计算总和与平均值
total_score = sum(scores)
average_score = total_score / len(scores)

# 格式化输出结果
print(f"\n📊 计算结果:")
print(f"成绩总和:{total_score:.2f}")
print(f"成绩平均值:{average_score:.2f}")

代码说明

  • split():默认按任意空白字符(空格、制表符等)分割,不用特意指定分隔符,非常灵活。
  • 用float转换:既能处理整数成绩,也能处理带小数的成绩,适用性更广。
  • 异常处理和空判断:避免用户输入空内容或者非数字字符导致程序崩溃,提升了代码的鲁棒性。

如果是其他编程语言(比如Java、C++),思路也是类似的:读取整行输入→分割字符串→转换为数值→计算统计值,只是语法细节不同而已~

内容的提问来源于stack exchange,提问作者BItGuy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 14:12:55