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

Python技术问询:如何在输入流遇到第一个0前输出最大值?

解决思路与优化代码

你的代码逻辑其实是符合问题要求的——只有当接收到第一个0时,才能确定输入流的结束,此时输出之前所有输入数字的最大值是合理的。不过可以优化实现方式,无需存储所有输入的数字,而是实时维护当前最大值,这样能节省内存空间。

优化后的代码

current_max = float('-inf')
while True:
    num = int(input())
    if num == 0:
        print(current_max)
        break
    if num > current_max:
        current_max = num

代码说明

  • 初始化current_max为负无穷,确保能正确处理所有负整数输入的情况
  • 每次读取输入后,先判断是否为0:如果是,直接输出当前维护的最大值并终止循环
  • 如果输入不是0,就和current_max比较,更新最大值

如果你的需求是每输入一个数字就实时输出当前的最大值(而非等待输入0后输出最终最大值),可以在更新最大值后直接打印,代码调整如下:

current_max = float('-inf')
while True:
    num = int(input())
    if num == 0:
        break
    if num > current_max:
        current_max = num
    print(current_max)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 15:36:20