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

如何检测序列中的数值(整数/浮点数)并统计数量?

问题分析与修复方案

你的代码核心问题是没有真正用自己写的判断函数识别数值,依然依赖只能识别正整数的isnumeric(),导致浮点数、带负号的数值无法被统计,同时也没实现“无数值时返回no number”的需求。

修复后的代码

def is_number(item):
    try:
        float(item)
        return True
    except ValueError:
        return False

series = input('Enter a series of numbers separated by a space:').split()
count_numbers = 0
count_non_numeric = 0

for item in series:
    if is_number(item):
        count_numbers += 1
    else:
        count_non_numeric += 1

if count_numbers == 0:
    print("no number")
else:
    print('Amount of numbers: ', count_numbers)
    print('Amount of non-numeric values: ', count_non_numeric)

关键改动说明

  • 把判断函数改成返回布尔值的is_number,明确捕获ValueError(避免无差别捕获所有异常),能转成浮点数就返回True,否则返回False,适配整数、浮点数、带负号的数值。
  • 循环时用is_number(item)替代isnumeric()作为判断依据,解决浮点数无法统计的问题。
  • 最后增加判断逻辑:如果统计到的数值数量为0,输出no number;否则正常输出统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:01:12