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

Hackerrank报invalid literal for int()错误 本地正常代码如何修改

报错根因

ValueError: invalid literal for int() with base 10 触发的直接原因是传入int()的待转换内容不是合法十进制整数字符串。
本地运行正常是因为手动输入时第一行只有纯整数,没有多余字符;Hackerrank平台用自动化脚本喂入测试用例,输入行可能携带首尾空格、不可见换行符、冗余分隔内容,直接对原始输入做整数转换就会触发报错。另外你原代码的每行星号末尾会多一个尾随空格,部分判题规则严格的用例即使输入转换成功,也会判定输出不符合要求。

调整方案
  • 修正输入读取逻辑:读取输入后先用strip()清除首尾所有空白字符,再做整数转换,就能覆盖90%以上的同类报错。如果遇到第一行携带多段内容的测试用例,拆分内容后取第一个有效整数即可。
  • 修正输出逻辑:避免逐字符打印产生的尾随空格,用字符串拼接的方式一次性输出每行星号,匹配平台判题的格式要求。

调整后可直接提交的完整代码:

n = int(input().strip())
for i in range(1, n + 1):
    print(' '.join(['*'] * i))
极端场景兼容写法

如果加了strip()仍然触发同类报错,说明测试用例第一行混入了非数字内容,可以用更鲁棒的读取逻辑,自动提取第一行的第一个有效整数:

n = 0
for content_part in input().strip().split():
    if content_part.isdigit():
        n = int(content_part)
        break

for i in range(1, n + 1):
    print(' '.join(['*'] * i))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 22:06:27