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

Python无列表实现数字正负零统计的循环逻辑问题求解

Python循环数值统计实现方案

原代码问题梳理

  • 循环条件完全错误:while(n<0)的触发前提是第一个输入为负数,输入正数、零时循环根本不会执行,且没有设置循环次数控制,无法满足固定接收10个输入的要求
  • 判断逻辑错位:用n%2 ==0识别正数是混淆了偶数判断和正数判断,2.1、25这类非偶正数无法被识别;计数时没有更新初始化的pos/neg/zero变量,反而新建临时变量,计数完全不生效
  • 输入逻辑缺失:仅在循环外接收了1次输入,循环内没有重复接收输入的代码,无法实现逐次输入10个数值的要求
  • 输出逻辑混乱:题目要求最终统一输出三类数值的总数,原代码在循环内打印中间值,不符合输出要求

实现逻辑说明

  • 不需要把输入值本身作为循环判断条件,直接用独立的计数变量控制循环次数,跑满10次输入就终止循环,完全覆盖正数、负数、零所有输入场景
  • 每次拿到输入后统一转为float类型,兼容整数、小数输入;直接通过和0的大小关系完成分类,对应计数器自增即可
  • 全程只用到三个计数器和一个循环控制变量,不需要使用列表,完全符合题目要求

正确代码

# 初始化三类数值的计数器
pos = 0   # 正数计数
neg = 0   # 负数计数
zero = 0  # 零计数

# 循环控制变量,记录已接收的输入个数
input_count = 0
while input_count < 10:
    # 每次循环接收1个输入,转为float兼容整数、浮点数
    current_num = float(input())
    # 按数值和0的关系分类计数
    if current_num > 0:
        pos += 1
    elif current_num < 0:
        neg += 1
    else:
        zero += 1
    # 已接收输入数+1
    input_count += 1

# 按要求分三行依次输出结果
print(pos)
print(neg)
print(zero)

效果验证

逐次输入测试用例:25、2.1、-19、5、0、-3.2、6、0、100、-7,统计结果为5个正数、3个负数、2个零,代码运行后会依次输出5、3、2,结果完全正确。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:27:23