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

Python逐行输入整数取反输出程序的格式问题修复咨询

问题分析

原有代码存在两处核心问题:

  • 循环结束后多余的print(-n, end=" ")语句属于冗余逻辑:此时n是空字符串,无法转为整数,会直接抛出ValueError异常。
  • 直接在循环内用end=" "输出会导致最终结果末尾多出多余的空格,和预期输出格式不符。

修正后代码

两种实现方案可选:

方案1:先收集所有结果再统一输出(更稳妥,无格式问题)

res = []
while True:
    n = input()
    if n == "":
        break
    res.append(str(-int(n)))
print(' '.join(res))

方案2:兼容原有循环逻辑,修正冗余代码和空格问题

n = input()
first = True
while n != "":
    num = -int(n)
    if first:
        print(num, end="")
        first = False
    else:
        print(f" {num}", end="")
    n = input()
print()

方案说明

  • 方案1的逻辑更简洁易维护:先把所有取反后的结果转为字符串存入列表,最后用' '.join()方法拼接,天然就不会产生末尾多余空格,也不会有异常问题。
  • 方案2完全沿用了原有代码的循环结构,仅通过首元素标记控制空格的输出,避免末尾多余空格,同时删除了会导致报错的冗余print语句。

两种方案针对示例输入5、0、-11、2的输出均为-5 0 11 -2,完全符合预期要求。

内容的提问来源于stack exchange,提问作者Merjema Murtić

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:36:07