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

Python实现输入数字直至负数输入并翻倍格式化输出的循环异常问题排查

解决Python循环无限执行且无法接收新输入的问题

我来帮你梳理下代码里的问题,然后给出修复方案:

问题分析

你的代码有两个核心问题,导致了无限循环和只能处理第一个输入的情况:

  • 输入未在循环内更新:你只在循环开始前获取了一次用户输入,之后循环里再也没有重新获取新的x值。如果第一次输入的是正数,x的值就固定不变了,循环条件x>0永远成立,自然会无限执行。
  • 负数判断逻辑无效:你把if x < 0的判断放在了循环体里,但循环的进入条件是x>0,所以这个判断永远不会被触发,根本无法让程序停止。

修复后的代码

while True:
    # 每次循环开始时重新获取用户输入
    x = float(input())
    # 先判断是否为负数,是则终止循环
    if x < 0:
        print('Negative number!')
        break
    # 处理非负数的计算与输出
    result = x * 2
    print(f'Result: {result:.2f}')

代码解释

  1. 使用while True创建一个无限循环,这样我们可以在每次循环的最开始就获取新的用户输入,确保每次都能处理不同的数字。
  2. 获取输入后立刻判断是否为负数:如果是,打印提示信息并通过break关键字跳出循环,程序直接停止。
  3. 如果输入的是非负数,就执行乘以2的计算,然后用格式化字符串输出保留两位小数的结果,之后循环会回到开头,等待用户的下一次输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 02:13:14